我正在做一个 CS 项目,我刚刚意识到我不理解其背后的机制。 java 引用和 getter。具体来说,如果我有以下内容:
class Circle{
private int radius;
}
public Circle(int radius){
this.radius = radius;
}
public int getRadius(){
return radius;
}
为什么构造函数我用
this.radius
引用 Circle 类中的数据字段“半径”,但对于构造函数,我有this.radius = radius
?我是否使用 this 有什么区别吗?只要它是唯一名为
radius
的数据字段即可?我刚刚在 Sublime 上测试了它,它输出了相同的结果。
就按照我自己的逻辑,使用this.radius
不是更有意义吗?返回getRadius()
中的半径getter 而不仅仅是return radius
因为我指的是对象Circle
中的数据字段?
我真的很感谢我能得到的所有帮助!
最佳答案
这是因为radius
是构造函数的参数名称和类的字段名称。为了消除歧义,使用了 this
关键字。如果是 getter,则不需要 this
,但也不会造成伤害。一些格式化程序默认添加this
,它相当于:
public int getRadius(){
return this.radius;
}
关于java - 对此使用 setter/getter 。在java中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55327417/