gpt4 book ai didi

java - "this"与正常初始化 java

转载 作者:行者123 更新时间:2023-11-29 09:34:40 24 4
gpt4 key购买 nike

我是 java 的初学者,慢慢开始接触这门语言。

我很难理解“这个”变量。

例如,哪个更好……为什么?

  public class Foo{
int a;
public Foo(int _a){
a = _a;
}
}

对比

public class Foo{
int a;
public Foo(int _a){
this.a = _a;
}
}

谢谢

最佳答案

就我个人而言,我讨厌那些使用下划线或“m_”来区分变量的约定。这就是 IDE 旨在阐明的内容。

您使用this 来清楚地描述属于当前实例的变量。

您的两个示例都没有任何优势。您可以通过查看生成的字节代码向自己证明这一点。如果您使用 javap,您会看到两者编译成相同的代码。

在我看来,它更多地与您自己和其他程序员的可读性有关。优秀的 IDE,如 IntelliJ,使用突出显示和颜色编码使其更加清晰。

绝对需要它的一种情况是方法参数和私有(private)成员之间存在名称冲突。然后你必须使用 this 来为编译器区分哪个是哪个:

public class Foo {
private int x;
public void setX(int x) {
this.x = x; // this is required here.
}
}

关于java - "this"与正常初始化 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12575500/

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