java面向对象-构造方法及this、super、final、static关键字
构造方法
在创建对象时明确对象的属性值。
构造方法的格式:
修饰符 构造方法名(参数列表){
}
构造方法没有返回值类型。也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。
构造方法名称必须和类名保持一致。
构造方法没有具体的返回值。
当编译java文件时,编译器会自动给class文件添加默认的构造方法,如果描述类时指定了狗哦早方法,编译java文件时编译器就不会给class文件添加默认构造方法。
构造方法的细节:
一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的
构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。
构造方法和一般方法的区别:
构造方法在对象创建时就执行了,而且只执行一次
一般方法实在对象创建后,需要使用时才被对象调用,可以被多次调用。
this关键字
this调用构造方法: this(参数列表);
this解决成员变量和局部变量同名问题,在方法中区别局部变量和成员变量,在成员变量名前加this.
super关键字
在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句。
调用父类空参构造方法: super();
调用父类有参构造方法: super (实参列表);
子类会继承父类中的内容,所以子类在初始化时,必须先到父类中去执行父类的初始化动作。这样,才可以使用父类中的内容。
如果子类的构造方法第一行写了this调用了本类其他构造方法,那么就没有隐式super();语句。
父类构造方法中也有隐式super();只要是构造方法默认第一行都是super();Java体系在设计,定义了一个所有对象的父类Object
final关键字
final意思为最终,不可变,可以用来修饰类、类的成员、局部变量,不能修饰构造方法。
特点:
final修饰的类不可以被继承,可以继承其他类
final修饰的方法不可以被子类重写,父类中没有被final修饰方法,子类重写后可以加final
final修饰的变量为常量,一次赋值,终身不变
final修饰引用类型,变量是对象地址值,地址值不能更改,但对象属性值可以修改
final修饰成员变量,需要在传概念对象前赋值,否则会报错
static关键字
被static修饰的成员变量属于类,不属于这个类的某个对象(多个对象访问或修改static修饰的成员变量时,一个对象将static成员变量值修改,其他对象共用一个修改后的成员变量)
被static修饰的成员可以通过类名直接访问
类名.静态成员变量名
类名.静态成员方法名(参数)
注意:
静态内容是优先于对象存在,只能访问静态,不能使用this、super,静态修饰的内容存于静态区。
同一个类中,静态成员只能访问静态成员
main方法为静态方法仅仅为程序执行入口,它不属于任何一个对象,可以定义在任意类中。
多态调用方法中,编译看=左边,父类有,编译成功,父类没有,编译失败
运行,静态方法,运行父类中的静态方法,
运行,非静态方法,运行子类的重写方法
成员变量,编译运行全是父类
public static final修饰的变量定义静态常量,变量用全部大写,单词间用下划线连接。
public static final 数据类型 变量名 = 值;
使用类的静态成员时可以直接使用类名访问 。
注意:
接口中每个成员变量都默认使用public static final修饰
所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值,可以直接用接口名访问。

浙公网安备 33010602011771号