Erste Schritte Variablen ansprechen

babuschka

Top Contributor
Hi,

ich arbeite mit meinen Codebeispielen aus dem Lernbuch. Gerade hab ich den Unterschied zwischen "Instanzvariablen" und "methodenlokalen Variablen" gelernt und wie bzw. wo die beiden Typen angesprochen werden können - da kommt schon (augenscheinlich zum.) die erste Ausnahme daher.
Zum Verständnis werd ich hier mal den kompletten Code posten, besonders lang ist er nicht:

Java:
import static java.lang.System.out;

class EnglishSpeakingWorld2 {
		String mars;
	
	void visitIdaho() {
		out.println("Aufruf von visitIdaho:");
	
		mars = "Roter Planet";
		
		String atomicCity = "Einwohner: 25";
		
		out.println(mars); 
		out.println(atomicCity);
	}
	
	void visitNewJersey() {
		out.println("Aufruf von visitNewJersey:");
		
		out.println(mars);
		// out.println(atomicCity);
	}
}
Meine Frage: Im letzten Codebeispiel gab es zwei Variablen "mars" und um aus einer Methode heraus die Instanzvariable (die außerhalb der Methode deklarierte) aufzurufen, wurde das Schlüsselwort "this" verwendet. Hier fehlt es, trotzdem funktioniert der Code. Liegt das daran, daß es in diesem Beispiel nur eine Variable "mars" gibt?
Vielen Dank!
Gruß,

Javaswillerdenn
 
ja

hier ist es nötig:
Java:
Integer bar;

void setBar(Integer bar) {
    this.bar = bar;
}
 
Okay, Danke!
Das ist jetzt klar.
In Java scheint es ja mehrere Dinge zu geben, die sich so aus dem Kontext heraus erklärbar und im Code nicht explizit zu nennen sind. Naja, daran werd ich mich gewöhnen.
Gruß,

Javaswillerdenn
 
wenn es dir anfangs leichter fällt, kannst du das this auch immer hinschreiben. Da Programmierer aber faul sind, wird Unnötiges oft gekürzt.
 
Hallo bone2,

das werd ich mal ausprobieren. Ich finde, so wäre es auch in einem Lehrbuch eingänglicher, halt versehen mit dem Hinweis, daß es nicht notwendig ist.
Verwirrend finde ich auch, daß manchmal eine Sache (ein Objekt) im Verlauf eines Programms mit verschiedenen Namen angesprochen wird, was dann funktioniert, weil es nur ein Objekt dieser Klasse gibt. Grad in größeren Programmen, wo man erst mal feststellen muss, wie viele Objekte einer Klasse da sind, kann das noch heiter werden.
Gruß,

Javaswillerdenn
 

Neue Themen


Zurück
Oben