2016-07-02 2 views
0

См. Ниже, где я создал объект для класса, и использовал метод nonstaticMethod для изменения значения нестатической целочисленной переменной. Я могу сделать это без использования этого «ключевого слова»?Соответствует ли нестатическая переменная в нестационарном методе объекту?

Это нестатический переменный внутри нестатического метода, такой же, как этот.нестатическийVariable?

package lastcommon; 

public class Check { 

    int nonstaticVariable = 100; 

    public static void main(String[] args) { 
     Check obCheck = new Check(); 

     obCheck.nonstaticMethod(); 
    } 

    void nonstaticMethod() 
    { 
     nonstaticVariable = 200; 
     System.out.println(nonstaticVariable); 
    } 
} 
+2

Большинство людей относятся к «не-статические» переменные/методы, как «экземпляра» переменных/методов. Единственный раз, когда вам нужно явно указывать 'this', является то, что переменная внутри метода имеет то же имя, что и переменная экземпляра. – 4castle

ответ

1

Да. nonstaticVariable = 200;является коротка для this.nonstaticVariable = 200; вы можете увидеть это, печатая его после вызова метода, как,

public static void main(String[] args) { 
    Check obCheck = new Check(); 
    obCheck.nonstaticMethod(); 

    System.out.println(obCheck.nonstaticVariable); 
} 
+1

... и переменные экземпляра были бы бесполезны, если бы это было не так. –