一、this
1、定义:对当前实例的引用,this关键字总是指向调用该方法的对象。
2、用法:
构造方法中引用该构造方法,执行初始化的对象,即this(参数),使用在该方法的第一条。
this用在普通方法中,用来访问本类其他方法和属性。
- 可以将this关键字当作普通实参,在方法间进行传递。
注意:
用static修饰的方法还总使用this关键字,则这个关键字无法指向合适的对象,所以static关键字修饰的方法中不能使用this引用
二、super
1、定义:父类对象的一个引用
2、用法:
写在子类中:可以引用父类中可见的属性和方法,就是让父类去干什么。
super():使用在子类构造方法的第一条
super(参数):不能写在子类普通方法中
super不能作为参数在方法间进行传递(与this的不同之处)
三、final
1、用法
修饰全局变量:该变量为一个全局的常量(全局常量一定要赋初始值,全局变量可以不赋初始值)。
修饰局部变量:变为局部的常量,仅在所在的代码块中有效。
修饰类:则该类为最终类,即没有子类不能被继承
修饰方法:则该类不能被重写,成为最终方法
注意:
局部常量初始化和赋值可在不同行,但是全局常量必须在同行
无论是全局常量还是局部常量都只能赋值一次,之后不能修改
只有final可以修饰局部变量,像private一类的访问权限修饰符不能修饰局部变量,但是可以修饰全局变量
子类可以继承父类中final修饰的方法,但是不能重写
final修饰基本数据类型和引用类型变量的区别:
当使用final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本数据类型变量不能被改变,但对于引用类型的变量而言,它保存的仅仅是一个引用,final只保证这个引用所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以发生改变
final Person p = new Person(45);//p是一个引用变量
p.setAge(23);//改变Person的age属性,合法
p=null;//对P赋值非法