49天精通Java,第8天,this关键字、SringBuilder中的this-LMLPHP

大家好,我是哪吒。

一、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,第8天,this关键字、SringBuilder中的this-LMLPHP

🏆本文收录于,49天精通Java从入门到就业

全网最细Java零基础手把手入门教程,系列课程包括:基础篇、集合篇、Java8新特性、多线程、代码实战,持续更新中(每周1-2篇),适合零基础和进阶提升的同学。

🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

04-06 20:38