2016-02-19 5 views
-2

В каких случаях мне нужно будет использовать ключевое слово this? Я использовал его до создания объектов класса, но обнаружил, что мне это действительно не нужно. Программа будет вести себя одинаково, независимо от того, было ли у нее ключевое слово this перед переменной.Какова цель этого ключевого слова в java?

Например, эти две версии одного и того же объекта 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; 
    } 
} 

Класс Test я использовал для тестирования обоих объектов является:

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 w курица выполняется в консоли:

$ java Test 
1 
6 
+2

Это в значительной степени * любой * полупристойный учебник, который объясняет программирование Java. Я понимаю, что вы просто попросите об этом в Stackoverflow, но это не то, для чего предназначен Stackoverflow (см. Статью [что по теме] (/ help/on-topic)). Просто посмотрите на это в Интернете. –

+0

http://javabeginnerstutorial.com/core-java-tutorial/this-keyword-in-java/ – vk239

+0

Перейдите на страницу google.com. Поиск вверх "Это ключевое слово java". Вот хорошая статья об it.https: //docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html –

ответ

0

Вы бы это нужно в таком случае:

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

Это единственный путь для компилятора, чтобы сделать разницу между локальной переменной и переменной-члена

Смежные вопросы