Probleme mit neuen Objekten

Chipchatt

Mitglied
Hi liebe Leute,
schreibe morgen Klausur und verstehe hier den Weg nicht so ganz, ich kann es nachvollziehen, weiss den Mechanismus aber nicht:

Java:
public class Demo {
public static void main(String[] args) {
SomeClass horst = new SomeClass();
SomeClass heiner = new SomeClass();
horst.counterTwo = 1;
heiner.counterTwo = 5;
horst.counterOne = 11;
heiner.counterOne = 17;
int result = horst.counterOne + heiner.counterTwo;
System.out.println(result);
}
}
public class SomeClass {
public static int counterOne;
public int counterTwo;
}
Welche Ausgabe produziert Demo ?

Es kommt 22 heraus, aber warum überschreibt heiner.counterOne den horst.counterOne, sind das nicht verschiedene Objekte?

Herzlichen Dank schonmal =)
 
Man nennt Variablen, die nicht static sind "Instanzvariablen", weil sie "für jede Instanz" der Klasse existieren.
Dagegen heißen static Variablen "Klassenvariablen", da sich diese Variablen auf die Klasse beziehen, also sie existieren auch ohne Instanz/Objekt von einer Klasse. Man hätte auch SomeClass.counterOne schreiben können, um auf die Variable zuzugreifen. Nach Konvention sollte man auch diese Schreibweise mit Klassenname.Klassenvariable benutzen.
 
Hey,

du könntest bei
Java:
 public static int counterOne;
das
Java:
 static
einfach weglassen, da du ja schon zwei Instanzen, also zwei Objekte erstellt hast, nämlich Horst und Heiner ( Klassennamen und Konstruktorvariablen / Instanzvariablen immer groß 😀 [Java Conventions] . Auf diese beiden Objekte kannst du nun drauf zugreifen. Da beide Objekte von der gleichen Klasse abgeleitet sind, kannst du auch bei beiden Objekten die gleichen Methoden und Variablen nutzen.

MfG

Hauke

Edit: Zu spät 😀
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben