1、通过this关键字可以明确的访问一个类的成员变量,解决成员变量与局部变量名称冲突的问题
例:
public class Date {
//定义三个成员变量
public int year;
public int month;
public int day;
//带有三个参数的构造方法
/*public void setDate(int year,int month, int day) {//错误示范,运行结果为0,0,0
year = year;
month = month;
day = day;
}*/
public void setDate(int year,int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
public static void main(String[] args) {
Date d = new Date();
d.setDate(2022,8,8);
}
}
上面代码构造方法中定义的参数year,month,day是局部变量,因为Java采取就近原则访问,所以构造方法中只是形参自己给自己赋值了,并没有赋值到成员变量中,想要访问类中的成员变量,就要使用this.变量名
访问。
2、通过this关键字调用成员方法
public class Date {
public void test1() {
System.out.println("test1被调用了");
}
public void test2() {
//调用test1
this.test1();
}
}
在test2()方法中通过this.test1();
访问test1()方法,注意此处的this关键字可以不写,效果是一样的。
3、在构造方法中访问构造方法使用this(参数1,参数2…)
public class Student {
String name;
public Student() {
System.out.println("无参构造方法被调用啦!");
}
//有参构造方法
public Student(String name) {
this();//调用无参构造方法
this.name = name;
}
public void printName() {
System.out.println("姓名:" + name);
}
public static void main(String[] args) {
Student stu = new Student("张三");
stu.printName();
}
}
在有参构造方法中调用了无参构造方法,在使用this调用构造方法时有一下几点需要注意: