1.this关键字
(1).每个类的每个非静态方法(没有被static修饰的)都会隐含一个this关键字,他指向调用这个方法的对象;当在方法中使用本类属性时,都会隐含的使用this关键字,当然也可以明确使用;
- this可以看成是一个变量,它的值就是当前对象的引用
- this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用如果是在同一个类中调用另外一个方法,则可以不用写this,可以直接调用
(2).为了区分属性和局部变量,可以通过过this关键字来调用
(3).this关键字的用法;
- 当类中非静态方法的参数名与类的某个成员变量名相同时,为了避免参数作用范围覆盖了成员变量的作用范围,必须明确使用this关键字来指定
- 如果某个构造方法的第一条语句具有形式this(…),那么这个构造方法将调用本类中的其他构造方法
- 如果那个方法需要传入当前对象,则可以将当前的对象作为参数传递给他
2.super关键字
(1).super的作用
- 子父类存在着同名的成员时,在子类中默认访问子类的成员,可以通过super关键字指定访问父类的成员
- 创建子类对象时,默认先调用父类午餐的构造的方法
(2).super的用法 - super可以用来直接引用父类的实例变量
- super可以用来调用直接父类方法
- super()可以用于调用直接父类构造函数
(3).注意事项 - 如果在子类的构造方法上没有指定调用父类的构造方法,java编译器会在子类的构造器里面加上super()语句
- super关键字调用父类的构造函数时,该语句必须要是子类构造函数的第一个语句
- super和this不能同时出现在同一个构造函数中调用其他的构造函数,因为两个语句都是要第一个语句
3.this和super的区别
(1)代表的事物不同 - super代表的是父类空间的引用
- this代表的是所属函数的调用者对象
(2)使用前提不同 - super必须要有继承关系才能使用
- this不需要继承关系也可以使用
(3)调用的构造函数不同 - super:调用父类的构造函数
- this:调用所属类的构造函数