Konstruktor

Semir

Neues Mitglied
Hallo alle zusammen,

kann mir vielleicht jemand sagen was eigendlich ein Konstruktor ist? Für was wird er benötigt? Was ist seine aufgabe?Ich hab schon viel über konstruktoren gelesen aber weit bin ich irgendwie nicht gekommen :S..Kann vielleicht jemand das an einen Beispiel zeigen?

MfG

Semir
 

eRaaaa

Top Contributor
Wenn ein Objekt erzeugt wird(also mit new Objektname()) , wird immer der Konstruktor der Klasse aufgerufen. Wenn du keinen Konstruktor in deinen Code einfügst, tut das der Compiler automatisch für dich: Er legt einen Default-Konstruktor an
Java:
public Klassenname(){}

Man kann natürlich auch selber Konstruktoren schreiben. Diese können parametrisiert und überladen werden.
Sinnvoll ist das, wenn du willst, dass deinem Objekt bei der Erstellung schon Werte angegeben werden.
Beispiel: Du hast die Klasse Auto geschrieben, welches evtl. die Instanzvariablen

int pferdestaerken;
Color farbe;
String marke;

usw. haben.

Nun schreibst du also einen Konstruktor:
Java:
public Auto(int ps, Color color, String make){
//hier setzt du diese Werte dann 
this.pferdestaerken = ps;
//usw.
}

Somit hat dein Auto bei der Erstellung direkt diese Werte angenommen. Hättest du keinen eigenen Konstruktor, hätte das Auto zu Beginn 0 PS, Color = null und marke = null. (natürlich könnte der Aufrufer diese auch bei der Objekterstellung angeben...)

Ein besseres Beispiel ist mir so spontan nicht eingefallen :D

Du kannst dir mal folgendes durchlesen, dort wirds dir sicherlich klarer und besser beschrieben als ich dir das erklären könnte:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 6.5 Objekte anlegen und zerstören
/edit: Oder hier in der FAQ mal vorbeischauen:
http://www.java-forum.org/einfuehru...truktoren-dekonstruktoren-rueckgabewerte.html (zufällig auch mit Auto :D )

Gruß
 
Zuletzt bearbeitet:
G

Gelöschtes Mitglied 20545

Gast
Gerne doch :)

Der Konstruktor einer Klasse wird bei der Instantiierung eines Objekts automatisch aufgerufen. Er hat einerseits die Aufgabe, Standardaufgaben für ein Objekt abzuarbeiten, andererseits nimmt er die Argumente entgegen.

Du kannst den Konstruktor mit dem Bootvorgang deines PC vergleichen. Wenn du ihn anmachst, dann baut er sein Betriebssystem auf, an dem du dann arbeiten kannst. Der Benutzername, mit dem du dich einloggst, wäre das Argument.

Beispiel1:
Du könntest eine Klasse Auto schreiben, die die Methode bauDichZusammen(), aber keinen Konstruktor besitzt. Würdest du die Klasse nun instantiieren, würde zunächst nichts nützliches passieren, bis du jene Methode aufrufst. Damit dein Auto aber schon bei der Instantiierung fahren, lenken usw. kann, implementierst du den bauDichZusammen()-Code in den Konstruktor.

Beispiel2:
Für ein Rennspiel hast du eine Klasse Auto. Du könntest mehrere Instanzen dieser Klasse bilden, aber sie würden alle gleich aussehen, was langweilig wäre. Es sollen nun Autos mit verschiedenen Farben instantiiert werden. Also schreibst du die Klasse Auto mit einem Konstruktor, der als Argument die Farbe entgegennimmt.
 
G

Gelöschtes Mitglied 20545

Gast
Autos, die alten Lebensraumverbrenner, scheinen als Beispiel echt beliebt zu sein, eigentlich ärgerlich.

Angenommen du hast für das Rennspiel nun deine Autoklasse mit Konstruktor, inklusive Parameter- und bauDichZusammen-implementierung. Nun möchtest du, dass ein weiteres Auto in dem Spiel noch einen Anhänger hat. Du brauchst nun nicht den gesamten Kod aus der Autoklasse in die die AutoMitAnhänger-Klasse schreiben, sondern schreibst die Klasse AutoMitAnhänger so, dass sie den ganzen Kram aus Auto beinhaltet. Man sagt dann, sie erweitert Auto, realisert würde das so:

Java:
class AutoMitAnhaenger extends Auto{
...
}

Das nennt man dann Vererbung. Auto wird dann als Superklasse von AutoMitAnhänger bezeichnet und AutoMitAnhaenger erbt alle Instanzvariablen und -methoden, sowie den Konstruktor von Auto. Beim Instantiieren dieser Klasse (ohne eigenen Konstruktor) müsstest du ein Argument übergeben, weil der Konstruktor in Auto ja so geschrieben wurde und würdest zunächst ein Auto erhalten. Allerdings möchtest du ja den Anhänger mit einbauen, dieser kommt logischerweise in den eigenen Konstruktor der AutoMitAnhänger-Klasse, aber dann wird der Konstruktor von Auto nicht mehr aufgerufen. Damit dann auch der Konstruktor der Auto-Klasse ausgeführt wird, musst du folgendermaßen vorgehen:

Java:
class AutoMitAnhaenger extends Auto{
   public AutoMitAnhaenger(Color farbe){
      super(farbe);
      //anhaenger-code
   }
}

super() ruft den Konstruktor der Superklasse auf und muss immer die erste Anweisung im Konstruktor der Unterklasse sein.
Übrigens: Der Konstruktor von AutoMitAnhänger muss kein Argument übernehmen, er kann beliebig gestaltet werden,
 
Zuletzt bearbeitet von einem Moderator:

Semir

Neues Mitglied
jetzt sind mir einige sachen klarer geworden :D ich danke euch für eure schnelle antwort :D
ich versuch jetzt einige beispiele alleine zu machen und bei problemen wende ich mich nochmal an euch :D

nochmals vielen dank :toll:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C OOP Parameter vom Konstruktor Java Basics - Anfänger-Themen 1
R Konstruktor mit Datum Java Basics - Anfänger-Themen 17
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
B Konstruktor Problem Java Basics - Anfänger-Themen 8
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
O Konstruktor und Default Konstruktor Java Basics - Anfänger-Themen 7
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
I Vererbung Frage zum Konstruktor Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
P Konstruktor Java Basics - Anfänger-Themen 4
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
M Objekt Array an konstruktor übergeben und Initialisieren Java Basics - Anfänger-Themen 1
llabusch Vererbung Super Konstruktor Java Basics - Anfänger-Themen 5
P Erste Schritte WindowBuilder erstellt Konstruktor wie zugreifen Java Basics - Anfänger-Themen 5
M Parameter von Konstruktor, der Superklassen-Konstruktor aufruft Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben