2016-07-02 9 views
0

Siehe unten, wo ich ein Objekt für die Klasse erstellt habe und die Methode nonstaticMethod verwendet habe, um den Wert einer nicht-statischen Integer-Variablen zu ändern. Ich bin dazu in der Lage, ohne dieses "Schlüsselwort" zu verwenden?Entspricht eine nicht statische Variable in einer nicht statischen Methode der des Objekts?

Ist nonstaticVariable innerhalb nonstaticMethod wie this.nonstaticVariable?

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

Die meisten Menschen auf „nicht-statische“ Variablen/Methoden als „Instanz“ Variablen/Methoden beziehen. Sie müssen 'this' nur dann explizit angeben, wenn eine Variable innerhalb der Methode denselben Namen wie die Instanzvariable hat. – 4castle

Antwort

1

Ja. nonstaticVariable = 200;ist kurz für this.nonstaticVariable = 200; Sie das sehen kann es nach dem Methodenaufruf durch Drucken wie,

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

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

... und Instanzvariablen wären nutzlos, wenn dies nicht der Fall wäre. –