编程语言
首页 > 编程语言> > java – 为什么我必须使用“this”关键字进行前向引用?

java – 为什么我必须使用“this”关键字进行前向引用?

作者:互联网

当我使用this关键字访问类中的非静态变量时,Java不会给出任何错误.但是当我不使用它时,Java会出错.我为什么要用这个?

我知道通常什么时候应该使用它,但这个例子与正常用法非常不同.

例:

class Foo {
//  int a = b; // gives error. why ?
    int a = this.b; // no error. why ?
    int b;
    int c = b;

    int var1 = this.var2; // very interesting
    int var2 = this.var1; // very interesting
}

解决方法:

首先声明变量然后分配变量.该类与此相同:

class Foo {
    int a;
    int b;
    int c = b;

    int var1;
    int var2;

    public Foo() {
        a = b;

        var1 = var2;
        var2 = var1;
    }
}

你不能做a a = b的原因;是因为在创建对象时尚未定义b,但是对象本身(即this)与其所有成员变量一起存在.

以下是每个的说明:

    int a = b; // Error: b has not been defined yet
    int a = this.b; // No error: 'this' has been defined ('this' is always defined in a class)
    int b; 
    int c = b;  // No error: b has been defined on the line before  

标签:java,class,this,forward-reference
来源: https://codeday.me/bug/20191004/1851476.html