Java Konstruktoren verstehen: Initialisierung und Best Practices
Ein Konstruktor initialisiert ein Objekt, wenn es erstellt wird. Er hat denselben Namen wie seine Klasse und ist syntaktisch ähnlich zu einer Methode. Konstruktoren haben jedoch keinen expliziten Rückgabetyp.
Typischerweise verwendet man einen Konstruktor, um den Instanzvariablen der Klasse Anfangswerte zu geben oder andere Startprozeduren durchzuführen, die erforderlich sind, um ein vollständig formiertes Objekt zu erstellen.
Alle Klassen haben Konstruktoren, ob Sie einen definieren oder nicht, da Java automatisch einen Standardkonstruktor bereitstellt, der alle Mitgliedsvariablen auf null initialisiert. Sobald Sie jedoch Ihren eigenen Konstruktor definieren, wird der Standardkonstruktor nicht mehr verwendet.
Syntax
Folgend die Syntax eines Konstruktors:
class ClassName {
ClassName() { }
}
Java erlaubt zwei Arten von Konstruktoren:
- Konstruktoren ohne Argumente
- Parameterisierte Konstruktoren
Konstruktoren ohne Argumente
Wie der Name sagt, akzeptieren Konstruktoren ohne Argumente in Java keine Parameter. Stattdessen werden die Instanzvariablen einer Methode mit festen Werten für alle Objekte initialisiert.
Beispiel
public class MyClass {
int num;
MyClass() {
num = 100;
}
}
Sie würden den Konstruktor wie folgt aufrufen, um Objekte zu initialisieren:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass();
MyClass t2 = new MyClass();
System.out.println(t1.num + " " + t2.num);
}
}
Dies würde folgendes Ergebnis produzieren:
100 100
Parameterisierte Konstruktoren
Meistens benötigen Sie einen Konstruktor, der einen oder mehrere Parameter akzeptiert. Parameter werden einem Konstruktor auf dieselbe Weise hinzugefügt wie einer Methode – einfach innerhalb der Klammern nach dem Konstruktor-Namen deklarieren.
Beispiel
Hier ist ein einfaches Beispiel, das einen Konstruktor verwendet:
// Ein einfacher Konstruktor.
class MyClass {
int x;
// Folgender ist der Konstruktor
MyClass(int i) {
x = i;
}
}
Sie würden den Konstruktor wie folgt aufrufen, um Objekte zu initialisieren:
public class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass(10);
MyClass t2 = new MyClass(20);
System.out.println(t1.x + " " + t2.x);
}
}
Dies würde folgendes Ergebnis produzieren:
10 20
Java
- C++-Konstruktoren verstehen: Standard-, Parameter- und Kopierkonstruktor erklärt
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- Java Kommentare: Typen, Verwendung und Best Practices
- Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
- Java Konstruktoren meistern: Typen, Verwendung und praktische Beispiele
- Java Strings meistern: Erstellung, Methoden und Best Practices
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- Java Try-With-Resources meistern: Automatisches Ressourcenmanagement erklärt
- Java Annotations erklärt: Typen, Platzierung und praktische Beispiele
- Java Assertions: Praktischer Leitfaden zur Fehlererkennung und Code-Reliabilität