大家好,我是哪吒。
一、this关键字
this用于表示当前对象,使用this关键字可以在类的方法中引用该方法所属的对象。
1、调用构造器
如果一个类中有多个构造器,可以使用this关键字来调用同一类中的其他构造器。
public class Student {
private int value;
public Student() {
// 调用另一个构造器
this(0);
}
public Student(int value) {
this.value = value;
}
}
2、引用成员变量或成员方法
使用this关键字来访问当前对象的成员变量或成员方法。
public class Student {
private String name;
public void setValue(String name) {
// 引用成员变量
this.name = name;
}
public String getName() {
// 引用成员变量
return this.name;
}
}
3、返回当前对象
在某些情况下,需要将当前对象作为方法的返回值返回,此时可以使用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方法,但编译器会自动帮你添加上的。
三、SringBuilder中的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关键字来返回当前对象,以实现链式调用的效果。
🏆本文收录于,49天精通Java从入门到就业。
全网最细Java零基础手把手入门教程,系列课程包括:基础篇、集合篇、Java8新特性、多线程、代码实战,持续更新中(每周1-2篇),适合零基础和进阶提升的同学。
🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师。