如何在java中使用“this”关键字?我不知道如何使用它?

时间:2014-09-27 15:22:03

标签: java this

我一直在使用多种方法,但我的“java the complete reference”一书并没有很好地解释如何使用“this”关键字。

2 个答案:

答案 0 :(得分:1)

这在java中

它用于在envoked方法或构造函数中引用对象的数据成员,以防字段和局部变量之间存在名称冲突

    public class Test {
    String s;
    int i; 
    public Test(String s, int i){
        this.s = s;
        this.i = i;
    } }

它用于从同一个类的另一个构造函数中调用一个构造函数,或者你可以说构造函数链接。

public class ConstructorChainingEg{
    String s;
    int i;
    public ConstructorChainingEg(String s, int i){
        this.s = s;
        this.i = i;
        System.out.println(s+" "+i);
    }
    public ConstructorChainingEg(){
        this("abc",3); // from here call goes to parameterized constructor
    }

    public static void main(String[] args) {
       ConstructorChainingEg m = new ConstructorChainingEg();
      // call goes to default constructor
    }
}

它还有助于方法链接

class Swapper{
    int a,b;
    public Swapper(int a,int b){
        this.a=a;
        this.b=b;
    }
    public Swapper swap() {
        int c=this.a;
        this.a=this.b;
        this.b=c;
        return this;
    }
    public static void main(String aa[]){
        new Swapper(4,5).swap(); //method chaining
    }
}

答案 1 :(得分:0)

这是一对夫妇:

public class Example {
    private int a;
    private int b;

    // use it to differentiate between local and class variables
    public Example(int a, int b) {
        this.a = a;
        this.b = b;
    }

    // use it to chain constructors
    public Example() {
        this(0, 0);
    }

    // revised answer:
    public int getA() {
        return this.a;
    }

    public int getB() {
        return this.b
    }

    public int setA(int a) {
        this.a = a
    }

    public void setB(int b) {
        this.b = b;
    }
}

this指的是属于使用this的对象的属性。例如:

Example ex1 = new Example(3,4);
Example ex2 = new Example(8,1);

在这些情况下,ex1.getA()将返回3,因为this指的是属于名为a的对象的ex1,而不是ex2或其他任何东西。 ex2.getB()也是如此。

如果您查看setA()setB()方法,则使用this将属于该对象的属性ab与参数名称区分开来他们是一样的。