gpt4 book ai didi

java - "this"在Java中的使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:58:25 25 4
gpt4 key购买 nike

如果我写下面的类:

public class Example {

int j;
int k;

public Example(int j, int k) {
j = j;
k = k;
}

public static void main(String[] args) {
Example exm = new Example(1,2);
System.out.println(exm.j);
System.out.println(exm.k);
}

}

程序可以编译,但是当我运行程序时,main 方法会打印出两个 0。我知道为了说明我想在构造函数中初始化实例变量,我必须这样写:

this.j = j;
this.k = k;

但是如果我不写它,那么在构造函数中(在表达式的左侧和写手侧)评估(或考虑)哪个变量?是参数还是实例变量?有区别吗?

还有其他情况下必须使用 this 吗?

最佳答案

如果你在你的构造函数中没有写“this.variable”,并且如果你在构造函数中有一个与你的字段变量同名的局部变量(包括函数参数),那么局部变量将被视为;局部变量隐藏字段(又名类变量)。

“这个”是唯一的去处:

class OuterClass {
int field;

class InnerClass {
int field;

void modifyOuterClassField()
{
this.field = 10; // Modifies the field variable of "InnerClass"
OuterClass.this.field = 20; // Modifies the field variable of "OuterClass",
// and this weird syntax is the only way.
}
}
}

关于java - "this"在Java中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com