大家好,我是哪吒。
this用于表示当前对象,使用this关键字可以在类的方法中引用该方法所属的对象。
如果一个类中有多个构造器,可以使用this关键字来调用同一类中的其他构造器。
public class Student {
private int value;
public Student() {
// 调用另一个构造器
this(0);
}
public Student(int value) {
this.value = value;
}
}
使用this关键字来访问当前对象的成员变量或成员方法。
public class Student {
private String name;
public void setValue(String name) {
// 引用成员变量
this.name = name;
}
public String getName() {
// 引用成员变量
return this.name;
}
}
在某些情况下,需要将当前对象作为方法的返回值返回,此时可以使用this关键字。
public class Student {
public Student getThis() {
// 返回当前对象
return this;
}
}
this关键字主要用于在类的方法中引用该方法所属的对象,并且还可以用于构造器间的调用。
this只能在非静态方法中使用。
当你想在方法里调用对象时,直接使用this就可以了,因为它表示对该对象的引用。可以像使用任何其他对象引用一样使用this。
public class Student {
public String getName(){
return "和哪吒一起学Java!";
}
public String studyJava(){
return getName();
}
public String studyJava2(){
return this.getName();
}
}
上面的studyJava和studyJava2方法,效果是等价的。虽然studyJava中没有写this方法,但编译器会自动帮你添加上的。
当需要明确之处当前对象的引用时,才使用this关键字。
比如,它经常用在return语句中,来返回对当前对象的引用。
我们最常使用的SringBuilder就是典型的this用法。
public String getName(){
StringBuilder builder = new StringBuilder();
builder.append("哪吒");
builder.append("学习");
builder.append("Java");
return builder.toString();
}
打开StringBuilder源码一探究竟。
@Override
public StringBuilder append(String str) {
super.append(str);
return this;
}
this关键字在append()方法内部表示当前调用该方法的StringBuilder对象。
在使用StringBuilder类时,如果需要链式调用多个方法,可以使用this关键字来返回当前对象,以实现链式调用的效果。
本文收录于,Java基础教程系列。
目前已经700+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。
哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。