在什么情况下我需要使用this
关键字?我在创建类对象之前使用过它,但我发现我并不需要它。无论变量前面是否有this
关键字,该程序的行为方式都相同。
例如,我为演示创建的同一个Circle对象的这两个版本在Test类中使用时产生相同的结果,但是在其私有变量上使用this
关键字,而另一个不使用this
关键字。
没有 public class Circle{
private int radius;
public Circle(){
//default radius setting
radius = 1;
}
public Circle(int r){
radius = r;
}
public int getRadius(){
return radius;
}
public void setRadius(int r){
radius = r;
}
}
关键字的版本:
this
包含public class Circle{
private int radius;
public Circle(){
//default radius setting
this.radius = 1;
}
public Circle(int r){
this.radius = r;
}
public int getRadius(){
return this.radius;
}
public void setRadius(int r){
this.radius = r;
}
}
关键字的版本:
public class Test{
public static void main(String[] args){
Circle c = new Circle();
System.out.println(c.getRadius());
c.setRadius(6);
System.out.println(c.getRadius());
}
}
我用来测试两个对象的Test类是:
$ java Test
1
6
在控制台中执行时,对于Circle类的两个版本都会产生以下输出:
Quantity Price per Unit
Under 36 $2.85
36-95 $2.63
96-179 $2.27
180+ $2.00
答案 0 :(得分:0)
在这种情况下你需要它:
public void setRadius(int radius){
this.radius = radius;
}
这是编译器在局部变量和成员变量之间区别的唯一方法