构造器
格式:
【修饰符】 类名 (参数){
}
是一种特殊的方法:
- 通过new关键字调用
- 构造器虽然有返回值,但不能定义返回值类型(返回值类型是本类),不能在构造器里调用return
- 如果没定义构造器,系统会自动定义一个无参的构造函数。如果已经定义则编译器不会添加
- 构造器方法名必须和类名一致。
- 构造该类的对象,经常也用来初始化对象的属性。如下:
重载
一个类中可以定义有相同的名字,但是参数个数不同的多个方法。调用时会根据不同的参数进行区分。
- 相同:同类中,同方法名
- 不同:参数个数,参数类型,参数顺序
注意:只有返回值不同不构成方法的重载
static关键字
在类中,用static声明的成员变量为静态变量,或者叫类变量。
- 它是该类的公用变量,属于类,被该类的所有实例共享,在类被载入时显式初始化。
- 对于该类的所有对象来说,static成员变量只有一份。该类的所有对象共享。
- 可以使用 对象.类属性 来调用。不过一般是用 类名.类属性
- static变量置于方法区中。
用static声明的方法称为静态方法
- 不用对象,就可以调用(类名.方法名)
- 在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可以访问非static的成员
成员变量属于对象,static变量属于类。如下图:
Cannot make a static reference to the non-static field eyes
静态方法要想调用类中的变量就需要将其变为静态的,这样才可以被加载如堆内存。
this关键字
普通方法中,this总是指向调用该方法的对象。
构造方法中,this总是指向正要初始化的对象。
重载的构造方法首行可通过this()调用其他构造函数
注意:
super的用法跟this类似,this代表对本类对象的引用,指向本类已经创建的对象;而super代表对父类对象的引用,指向父类对象;
this和super是属于对象范畴的东西,而静态方法是属于类范畴的东西。
继承
子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法)。
java中类只有单继承
java中的多继承可以通过接口来实现。