Wenn der new Operator ein Objekt anlegt, wird der Konstruktor der Klasse automatisch aufgerufen. Wenn man einen eigenen Konstruktor (den default Konstruktor überlädt man dann oder?) erzeugt, kann das Objekt nach seiner Erzeugung einen sinnvollen Anfangszustand aufweisen. Wie kann man diesen Anfangzustand erreichen?
this. / this() : Konstruktoraufruf der Klasse - this. und this() sagen dasselbe aus oder?
super. / super() : Konstruktoraufruf der Basisklasse
Nehmen wir an (UML):
Sofa
-ATTRIBUTE-
-zustand: int
-METHODEN-
+Sofa(einName: String, einHersteller: Hersteller, einZustand: int)
+Sofa(einName: String, einHersteller: Hersteller)
+getZustand():int
+setZustand(einZustand: int) void
+restauriere(): void
Diese Klasse erbt von der abstrakten Klasse Möbelstück
<<abstract>> Möbelstück
-ATTRIBUTE-
-name: String
-hersteller: Hersteller
-METHODEN-
+Möbelstück(einName:String, einHersteller: Hersteller)
+getName():String
+setName(einName:String):void
+getHersteller():Hersteller
+setHersteller(einHersteller:Hersteller):void
Dann gibt es noch das Interface restaurierBar()
Meine Fragen dazu:
1) Was genau machen die getZustand(), setZustand(), setName() und getName()? Ich weiß, dass diese Methoden zum einen private Attribute sozusagen zugänglich machen für Methoden. Also man schreibt dann sowas wie:
public int getZustand(){
return zustand;
}
Aber genau so können solche Methoden Exceptions werfen.
public void setZustand(int zustand) throws IllegalArgumentException(){
if(zustand >5 || zustand <0){
throw new IllegalArgumentException();
}else{
zustand=zustand;
}
}
Was genau bedeutet zustand = zustand?
Ich habe an sowas gedacht wie, dass diese setter und getter Konstruktoren für Methoden sind..