类(class)

面向对象是一种设计者思维。设计时,先从问题中找名词,然后确立这些名词哪些可以作为类,

再根据问题需求确定类的属性和方法,确立类之间的关系。

 

~类是一张图纸,系统根据类来创造对象(object / instance),

~类是对象的模板,对象是类的实例

~类中定义了这一类对象所应有的共同属性和方法

类的成员

类有三种成员:属性field、方法method、构造器constructor。

属性

属性用于定义该类或该类对象包含的数据或静态特征。属性的作用范围为整个类体。

在定义成员变量时可以对其进行初始化,如果不进行初始化,Java使用默认值初始化

成员变量默认值
数据类型 默认值
整型 0
浮点型 0.0
字符型 '\u0000'
布尔型 false
所有引用类型 null

 

方法

方法用于定义该类或者该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。

面向对象中,整个程序的基本单位是类。

【格式】

    [修饰符] 方法返回值类型 方法名(形参列表){
        // 语句
    }

 

构造方法(构造器 constructor)

【格式】

    [修饰符] 类名(形参列表){
        // n 条语句
    }

 

1.构造器通过new关键字调用!

2.构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类)

   不能在构造器里使用return返回某个值。

3.如果没有构造器,编译器会自动添加一个无参的构造方法。如果已定义就不会再添加

4.构造器的方法名必须和类名保持一致

 

构造方法的重载

 

 

 

类的实例

/**
 * 建一个二维坐标类
 */
public class Point {
   double x, y; // 属性
   Point(double _x, double _y){ // 构造器
       x = _x;
       y = _y;
   }
   Point(){}
    // 下面和上面两个构造器是重载
   public double Distance(Point p){ // 方法 求到另一个点的距离
       return Math.sqrt((x - p.x) *(x - p.x) + (y - p.y) * (y -p.y));
   }


    public static void main(String[] args){
       // Point p = new Point(); // 无参会报错
       Point p1 = new Point(3.0,4.0); // 使用构造器
       Point p2 = new Point(0.0,0.0);
       Point p3 = new Point();
       System.out.println(p1.Distance(p2)); // 调用方法.0
       System.out.println(p3.Distance(p2));

   }
}

 

 

/*
 *一个学生类
 **/
public class Stu {
    int id;         // 学号
    int age;        // 年龄
    String name;    // 姓名
    public  void  study(){
        System.out.println("工作日要上课!");
    }

    public static void main(String[] args){
        Stu s1 = new Stu();
        System.out.println(s1.id); // 默认为0
        System.out.println(s1.name);  // 默认为空
        s1.name = "david";    // 赋值的一种
        System.out.println(s1.name);    
        s1.study();
    }
}

 

 

posted @ 2022-02-02 16:31  我就一水  阅读(279)  评论(0)    收藏  举报