Kopf: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) |
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 50: | Zeile 50: | ||
}</syntaxhighlight> | }</syntaxhighlight> | ||
Dieser Methodenkopf definiert eine öffentliche Methode namens berechneFlaeche, die zwei Parameter vom Typ double entgegennimmt und einen Wert vom Typ double zurückgibt. | Dieser Methodenkopf definiert eine öffentliche Methode namens berechneFlaeche, die zwei Parameter vom Typ double entgegennimmt und einen Wert vom Typ double zurückgibt. | ||
== Konstruktor == | |||
Der [[Konstruktor]] dient dazu, ein [[Objekt]] einer [[Klasse]] zu initialisieren. Sein "Kopf" unterscheidet sich fundamental vom regulären Methodenkopf, da er keinen Rückgabe[[datentyp]] (nicht einmal ''void''!) besitzt und sein Name zwingend mit dem Namen der [[Klasse]] übereinstimmen muss. Wenn ein neues [[Objekt]] mit dem Schlüsselwort new erstellt wird, wird der entsprechende [[Konstruktor]] aufgerufen. | |||
=== Struktur === | |||
Die allgemeine Struktur des Konstruktorkopfs sieht so aus: | |||
''[[[Sichtbarkeit]]] KlassenName([Parameterliste]) [throws Ausnahme] { | |||
// Initialisierungslogik | |||
}'' | |||
* Sichtbarkeit: Bestimmt, wer den [[Konstruktor]] (und damit die Erstellung des Objekts) aufrufen kann. | |||
* KlassenName: Der Name des [[Konstruktor|Konstruktors]] muss exakt der Name der [[Klasse]] sein. Dies ist das wichtigste Unterscheidungsmerkmal zum Methodenkopf. | |||
* Parameterliste: Definiert die Werte, die übergeben werden müssen, um das Objekt zu initialisieren (z.B. Startwerte für Instanzvariablen). | |||
* throws Ausnahme: Optional. Kann eine Ausnahme deklarieren, die beim Initialisieren ausgelöst werden kann. | |||
Obwohl der [[Konstruktor]] keinen expliziten Rückgabewert hat, sorgt sein Aufruf implizit dafür, dass eine [[Instanz]] der [[Klasse]] (das [[Objekt]]) erzeugt und zurückgegeben wird. | |||
=== Beispiel === | |||
<syntaxhighlight lang="Java"> | |||
public class Rechteck { | |||
private double laenge; | |||
private double breite; | |||
// KONSTRUKTORKOPF | |||
public Rechteck(double l, double b) { | |||
this.laenge = l; | |||
this.breite = b; | |||
} | |||
// ... | |||
}</syntaxhighlight> | |||
Dieser Konstruktorkopf definiert einen öffentlichen Konstruktor für die Klasse Rechteck, der die Startwerte für laenge und breite entgegennimmt. Er wird bei der Objekterstellung wie folgt verwendet: Rechteck meinRechteck = new Rechteck(10.5, 5.0); | |||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] | ||