java this关键字介绍


Java中的 "this" 关键字表示当前对象的引用。它可以用于以下两种情况:

  1. 在一个构造方法中,可以使用 "this" 关键字来引用当前正在初始化的对象,以便调用同一类中的另一个构造方法。这种方式称为构造函数重载。例如:
public class MyClass {
    private int num;

    public MyClass() {
        this(0);
    }

    public MyClass(int num) {
        this.num = num;
    }
}

在上面的例子中,第一个构造函数调用了第二个构造函数,并将参数设置为0。

  1. 在一个类的方法中,可以使用 "this" 关键字来引用当前对象,以便在方法中访问当前对象的成员变量或方法。例如:
public class MyClass {
    private int num;

    public MyClass(int num) {
        this.num = num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public int getNum() {
        return this.num;
    }
}

在上面的例子中,setNum和getNum方法都使用了 "this" 关键字来引用当前对象的 "num" 成员变量。

总的来说,"this" 关键字是一种非常有用的工具,可以在Java中轻松地引用当前对象,以便访问它的成员变量或调用它的方法。

除了在构造方法和类的方法中使用,"this" 关键字还可以用于以下情况:

  1. 在一个类的方法中,可以使用 "this" 关键字来返回当前对象的引用,以便支持方法的链式调用。例如:
public class MyClass {
    private int num;

    public MyClass(int num) {
        this.num = num;
    }

    public MyClass add(int num) {
        this.num += num;
        return this;
    }

    public int getNum() {
        return this.num;
    }
}

在上面的例子中,add方法返回当前对象的引用,以便支持链式调用,例如:MyClass obj = new MyClass(10).add(5).add(7);

  1. 在匿名内部类中,可以使用 "this" 关键字来引用外部类的当前对象。例如:
public class MyClass {
    private int num;

    public void doSomething() {
        Runnable r = new Runnable() {
            public void run() {
                System.out.println(MyClass.this.num);
            }
        };
        new Thread(r).start();
    }
}

在上面的例子中,doSomething方法创建了一个匿名的Runnable对象,并在内部类中使用了 "this" 关键字来引用外部类的当前对象。

总之,"this" 关键字是一个非常重要的Java关键字,可以在类的方法和构造方法中使用,以及支持链式调用和匿名内部类的实现。


原文链接:codingdict.net