1.this是什么.
(1) 在Java中,this关键字不难理解.
- 它在方法(准确的来说是实例方法或非static的方法)内部使用,表示调用该方法的对象(实例).(static修饰的方法是静态方法,又称为类方法)
- 它在构造器内部使用,表示该构造器正在初始化的对象.
(2) this可以调用的结构 : 成员变量,方法和构造器.
(3) this关键字在Java中是一个引用,指向调用该方法或属性的实例本身.
(4) 方法括号内显式声明的参数称为显式参数,this是隐式参数,
2.在实例方法或构造器中使用当前对象(实例)的成员
(1)针对实例方法内的使用情况
- 一般情况下,我们通过对象a调用方法,可以在当前方法内调用该对象的属性和其他方法.此时,我们可以在属性和其他方法前使用"this.",表示当前属性或方法所属的对象.一般情况下,我们都选择忽略"this.".
- 特殊情况下,如果方法的形参与属性重名,我们必须使用"this."进行区分,使用"this."的即为属性,未使用的即为局部变量(形式参数).(给形参起名时尽量做到见名之意,所以会遇到这种场景)
(2)针对构造器内的使用情况
- 一般情况下,我们通过构造器创建对象时,可以在构造器内调用正在创建的对象的属性或方法.此时,我们可以在属性和其他方法前使用"this.",表示当前属性或方法所属的对象.一般情况下,我们都选择忽略"this.".
- 特殊情况下,如果构造器的形参与正在创建的对象的属性和方法同名时,我们必须使用"this."进行区分,使用"this."的即为属性,未使用的即为局部变量(形式参数).
(3)this调用构造器
- 格式 "this(参数列表)"
- 我们可以在类的构造器中,调用当前类中指定的构造器.
- 要求 : "this(参数列表)"必须写在构造器的首行.
- 结论 : "this(参数列表)"最多只能在构造器内声明一个.
- 如果一个类中声明了n个构造器,则最多有n -1个构造器可以声明有"this(参数列表)"的结构.