java中this关键字的用途是什么?

时间:2016-02-19 00:17:48

标签: java object keyword

在什么情况下我需要使用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

1 个答案:

答案 0 :(得分:0)

在这种情况下你需要它:

public void setRadius(int radius){
    this.radius = radius;
}

这是编译器在局部变量和成员变量之间区别的唯一方法