类(Class)
- 一个 java 文件中可以定义多个 class 类,但是只能有一个 public 修饰的类;
- 在一个 java 文件里定义两个类,其实跟建两个 java 文件分别定义一个类是一样,建议一个 java 文件只定义一个类;
1. 修饰词(Modifier)
- public 修饰的类名和java文件名要一致;
- protected 可以作用在不包中的子类(跨包继承引用);
- 无访问修饰符只能作用在同一个包中;
- private 本类访问,修饰的成员变量被其他类使用时提供 get/set 方法;
2. 方法(Method)
- 方法通常是动词;
- 方法定义在类中方法外,不能嵌套定义,必须定义后调用才会执行;
2.a 方法的调用(Calls to Method)
- 无参数无返回值的方法可以直接调用;
- 有参数有返回值的方法,调用时需要传递参数值并接收返回值;
- 成员方法需要创建对象才能调用;
- 加了 static 的方法是静态方法,可以在定义的本类中直接使用方法名调用,类名可以省略;在成员类中,调用不需要创建对象,静态不能直接访问非静态,无论是成员变量还是成员方法,如果有了 static,都推荐使用类名称进行调用;
2.b 参数(Parameter)
实际参数和形式参数的类型必须相同;
- Formal Parameter(形参 ):方法定义中的参数;
- Actual Parameter(实参):调用方法用的参数;
2.c 方法的重写与重载(Overriding & Overloading)
方法的重写(Overriding)和重载(Overloading)是 java 多态性的不同表现;
- 重写是父类与子类之间多态性的一种表现;
- 重载可以理解成多态的具体表现形式,构成重载的条件:同一类下,方法名相同,参数列表不同(参数个数,类型,或者顺序不同即可);
3. 构造方法(Constructor)
- 构造方法通常是一个名词,和类名一致;
- 如果类中没有定义构造方法,编译器会帮我们加上一个无参构造方法,构造方法可以重载,推荐写上无参构造方法,再使用带参构造,因为 java 虽然有自己默认的构造函数,但是一但这个类编写了自己的构造函数,原来的默认构造函数就不存在了,这时如果再想调用默认构造函数就会出错;
- 构造方法没有返回值,也不需要 void;
- 构造方法可以使用四种权限修饰符的任何一种,但不能用 abstract, final, native, static, synchronized 等非访问修饰符,因为构造方法是类;
3.a 关键字 this
- 修饰的变量用于指代成员变量,主要用来区分成员变量和局部变量:
当方法参数和类的成员变量同名时,使用“this.成员变量”代表成员变量;
当方法参数与成员变量异名时,优先指代成员变量,所以有时候也不用加 this; - this(); 调用自身无参构造方法;