关键字
1.this
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
作用
a.实现构造方法之间的调用
this(参数列表)
b.解决成员变量与局部变量的同名问题
this.成员变量
2.super
super可以理解为是指向自己超父类对象的一个指针,而这个父类指的是离自己最近的一个父类。
作用
a.调用父类的构造方法
super(参数列表)
b.直接引用父类的成员
super.xxx
注意事项
1.子类构造方法中有一句隐式的super();
2.当父类中没有空参数构造方法时,子类的构造方法必须有显示的super语句,指定要访问的父类有参数构造方法。(最好在类中写一个空参构造防止报错);
3.在构造方法中super 和 this 不能 同时显式 调用;因为两个关键字都要放在第一行
若果构造方法中第一行用this()调用了其他构造方法,此时super()的隐式调用不存在了;
4.this()和super()都指的是对象,所以,均不可以在static环境中使用。
3.static
概念
static它是静态修饰符,一般用来修饰类中的成员。
特点
1. 被static修饰的成员变量属于类,不属于这个类的某个对象。(在静态区内,先于对象加载)
也就是说,多个对象在访问或修改static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中的static成员变量值跟着改变,即多个对象共享同一个static成员变量
2.被static修饰的成员可以并且建议通过类名直接访问。
注意事项
1.静态只能访问静态(秦始皇不知道MZD)
2.静态中不能使用this和super (在静态区内,先于对象加载)
3.被静态修饰的方法可以被子类继承,但是无法被重写,如果强行重写相当于子类独有的方法
4.final
概念
final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。不能修饰构造方法。
特点
1.final修饰类不可以被继承,但是可以继承其他类。
2.final修饰的方法不可以被子类重写,但父类中没有被final修饰方法,子类重写后可以加final。
3. final修饰的变量称为常量,这些变量只能赋值一次。而且终身不变。
4.引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改。
5.修饰成员变量,需要在创建对象前赋值,否则报错。(当没有显式赋值时,多个构造方法的均需要为其赋值。)