一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。
this关键字的含义:
1、代表当前对象。
2、指代所在函数所属对象的引用,哪个对象调用了this所在的函数,this就指代哪个对象。
this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。
this的使用方法:
-
this调用本类的属性;
-
this调用本类的构造方法;
当一个类的构造方法有多个,并且它们之间有交集的话,就可以使用 this 关键字来调用不同的构造方法,从而减少代码量。
-
this调用本类的其他方法;
在程序中产生二义性之处,应使用this来指明当前对象;在普通方法中,this总是指向调用该方法的对象。在构造方法中,this总是指向正要初始化的对象。
package com.java.yanf.base;
import lombok.Data;
@Data
public class Person {
private String name;
private int age;
//无参构造函数
public Person() {
}
public Person(String name) {
//成员变量和局部变量重名,可以用关键字this区分
this.name = name;
}
public Person(String name, int age) {
//this调用本类的构造方法,必须放在第一行,因为初始化动作要先执行,等效于this.name = name;
this(name);
this.age = age;
}
public void say() {
//this调用本类的成员属性
System.out.println(this.name + ":" + this.age);
}
}
上面的Person类有两个成员变量,分别是 age 和 name。使用有参构造函数时,当参数名和成员变量的名字相同时,需要使用 this 关键字消除歧义:上面代码中的 this.age 是指成员变量,age 是指构造方法的参数。
总结:
- 构造方法相互调用时,相关代码必须放在调用构造方法的第一行,因为初始化代码必须先执行。
- this() 只能写在构造方法中,不能写在其他普通方法中。
- this不能放在static的类中使用。