Wieso funzt dieser Quellcode nicht (Java)?

... komplette Frage anzeigen

1 Antwort

Sry aber bei deinem Code wird erstmal rein garnichts richtig funktionieren...
Warum? Folgendes:

Klasse 2 Zeile 19-21:
Wird NIE false zurückgeben, da du hier die Variable der eigenen Klassen miteinander vergleichst.

this.x -> Ist natürlich der Aufruf um eine Interne Instanzvariable aufzurufen, wenn du aber danach mit x vergleichst (und deine instanzvariable heisst genauso, dan wirst du auch hier auf diese zugreifen)

Somit vergleichst du x mit x und das ist natürlich immer TRUE..

if (this.x!=x){
return false;
}

Exakt das gleiche bei Zeile: 22-24


Dann bei 25-27:

  else if (!(this.st.equals(Test.st))){
return true;
}


Wie mein Vorposter bereits gesagt hat, castest du das Objekt zum Klassentyp Klasse1 und hat somit keine Eigenschaft st mehr (Zumindest versteht der Compiler es nichtmehr)

Ausserdem:
Zeile 15-17

  if (!(obj1 instanceof Klasse1)){
return false;
}



Könntest du dir ersparen, wenn du einfach von vornerein nur Variablen vom Typ Klasse1 als Parameter aufnimmst....



MFG xGlumi

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?