JAVA Klassen, Objekte, Methoden? Konstruktor?
Guten Abend,
ich fange gerade ein Studium der Informatik an und wir hatten heute das Thema Klassen, Objekte und Methoden.
Wenn ich das richtig verstanden habe, sind Klassen sozusagen Baupläne. Daraus Folgen dann Objekte die wiederum Methoden haben.
Also zum Beispiel:
Klasse : Auto -> Objekt: VW oder Objekt: BMW
oder habe ich das falsch verstanden?
und was hat es mit dem Konstruktor auf sich?
2 Antworten
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
oder habe ich das falsch verstanden?
Du hast das richtig verstanden.
und was hat es mit dem Konstruktor auf sich?
Der Konstruktor ist eine spezielle Methode, die immer dann aufgerufen wird, wenn ein neues Objekt erstellt werden soll. In diesem Kontext kann der initiale Objektzustand festgelegt werden.
Beispiel:
enum Color { WHITE, BLUE, YELLOW }
class Car {
Color color;
public Car(Color color) {
this.color = color;
}
}
// main:
Car herbie = new Car(Color.WHITE);
Car sally = new Car(Color.BLUE);
Hier werden zwei unterschiedliche Objekte der Klasse Car erstellt. Dem Konstruktor wird jeweils eine Farbe übergeben, die das Auto haben soll. Im Konstruktor wird der Farbwert an die Eigenschaft color übergeben.
Das Auto herbie ist also initial weiß und das Auto sally initial blau.
![](https://images.gutefrage.net/media/user/VeryBestAnswers/1569701765554_nmmslarge__0_0_1000_1000_ae38d2d21f6e3a10a60fbb9429d0db71.png?v=1569701766000)
Nein, VW und BMW sind Automarken.
Ein Objekt der Klasse Auto wäre zum Beispiel das Auto in deiner Garage. Selbst wenn du zwei identische Autos hast, sind es unterschiedliche Objekte.
Um das zu veranschaulichen, hier ist die Klasse mit weiteren Attributen:
class Auto {
String marke;
String modell;
String farbe;
int baujahr;
String besitzer;
int kilometerZähler;
}
Und das könnte dein Auto sein:
Auto meinAuto = new Auto();
meinAuto.marke = "BMW";
meinAuto.modell = "5er";
meinAuto.farbe = "lila";
meinAuto.baujahr = 2018;
meinAuto.besitzer = "DerTiger95";
meinAuto.kilometerZähler = 6432;
![](https://images.gutefrage.net/media/user/VeryBestAnswers/1569701765554_nmmslarge__0_0_1000_1000_ae38d2d21f6e3a10a60fbb9429d0db71.png?v=1569701766000)
Es sollte Java sein, habe mich aber bei der Syntax vertan 😬
Habe schon lange kein Java mehr geschrieben, in der Arbeit schreibe ich v.a. TypeScript. Es ist jetzt korrigiert.
welche sprache ist das?