Kopf: Unterschied zwischen den Versionen
Thomas (Diskussion | Beiträge) Die Seite wurde neu angelegt: „== Einführung == In Java werden die grundlegenden Informationen über eine Klasse oder eine Methode in der Quellcodedatei definiert. Diese einleitenden Zeilen, die den Namen, die Sichtbarkeit und weitere Eigenschaften festlegen, können als die "Köpfe" der jeweiligen Code-Struktur betrachtet werden. Sie sind entscheidend für die Organisation und Verständlichkeit des Programms. Die Definition von Klassen- und Methodenköpfen ist aus…“ |
Thomas (Diskussion | Beiträge) |
||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 14: | Zeile 14: | ||
[Sichtbarkeit] [final | abstract] class KlassenName [extends SuperKlasse] [implements Schnittstelle1, Schnittstelle2] { | [Sichtbarkeit] [final | abstract] class KlassenName [extends SuperKlasse] [implements Schnittstelle1, Schnittstelle2] { | ||
// Körper der Klasse | // [[Körper]] der Klasse | ||
} | } | ||
* [[Sichtbarkeit]]: Bestimmt, wo die [[Klasse]] im [[Projekt]] verwendet werden kann. | * [[Sichtbarkeit]]: Bestimmt, wo die [[Klasse]] im [[Projekt]] verwendet werden kann. | ||
| 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. | |||
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. | |||
<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]] | ||