Java 将getter与此一起使用。在爪哇
我正在为CS做一个项目,我刚刚意识到我不理解这背后的机制。java引用和getter。具体而言,如果我具备以下条件:Java 将getter与此一起使用。在爪哇,java,oop,getter,Java,Oop,Getter,我正在为CS做一个项目,我刚刚意识到我不理解这背后的机制。java引用和getter。具体而言,如果我具备以下条件: class Circle{ private int radius; } public Circle(int radius){ this.radius = radius; } public int getRadius(){ return radius; } 为什么对于构造函数,我使用this.radius来引用Circle类中的数据字段“radius”,而
class Circle{
private int radius;
}
public Circle(int radius){
this.radius = radius;
}
public int getRadius(){
return radius;
}
- 为什么对于构造函数,我使用
来引用Circle类中的数据字段“radius”,而对于构造函数,我使用this.radius
this.radius=radius
- 我是否使用这个选项有区别吗。只要它是唯一名为
的数据字段radius
- 我刚刚在Sublime上测试了它,它输出了相同的结果。
仅根据我自己的逻辑,使用
返回this.radius
getter中的半径而不是getRadius()
是否更有意义,因为我指的是对象return radius
圆中的数据字段
我真的很感激能得到的所有帮助 这是因为
radius
是构造函数参数和类字段的名称。为了消除那些的歧义,使用了这个
关键字。如果使用getter,则不需要此
,但也不会造成伤害。某些格式化程序默认情况下会添加此,它相当于:
public int getRadius(){
return this.radius;
}
如果不隐藏本地名称,则在构造函数中不需要
此
。这就是我的想法
public Circle(int r){
this.radius = r;
}
你可以写
public Circle(int r){
radius = r;
}
this
仅在用于指定所指的radius
时才是必需的。实际上,当您参考this.radius
时,这意味着您使用了类字段变量。否则(在您的代码中),您可以将半径
重新指定为给定构造函数中的参数,这在您的情况下可能是不需要的。要区分它,您必须使用不同的变量名称,或者使用此,因为构造函数公共圆(int radius){…}
具有与全局参数名称相同的参数名称radius
,并且您正在将全局参数(radius
)分配给局部参数(radius
)因为名字有点含糊不清。为了简化,我们引用了全局参数。像这样。半径=半径