Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个关键字在java中的用途是什么?_Java_Object_Keyword - Fatal编程技术网

这个关键字在java中的用途是什么?

这个关键字在java中的用途是什么?,java,object,keyword,Java,Object,Keyword,在什么情况下我需要使用this关键字?我以前在创建类对象时使用过它,但我发现我实际上并不需要它。无论变量前面是否有this关键字,程序的行为都是相同的 例如,我为演示而创建的同一圆圈对象的这两个版本在测试类中使用时产生相同的结果,但其中一个在其私有变量上使用了this关键字,而另一个则没有 没有此关键字的版本: public class Circle{ private int radius; public Circle(){ //default radius

在什么情况下我需要使用
this
关键字?我以前在创建类对象时使用过它,但我发现我实际上并不需要它。无论变量前面是否有
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;
    }
}
带有
关键字的版本:

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());
    }
}
在控制台中执行时,将为两个版本的类Circle生成以下输出:

$ java Test
1
6

在这种情况下,您需要它:

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

这是编译器区分局部变量和成员变量的唯一方法

这在解释Java编程的任何半正式教程中都有介绍。我知道你会问Stackoverflow这个问题,但这不是Stackoverflow的目的(见文章)。只要在互联网上查一下这个就可以了。去google.com。搜索“这个关键字java”。这是一篇关于它的好文章。你为什么使用单字母变量名?谢谢大家的链接!!当我在提交问题之前搜索答案时,我没有遇到这个问题。这很有帮助!