Java Klassen und Objekte: Praktischer Leitfaden
Java Klassen und Objekte
Entdecken Sie, wie Javas Klassen- und Objektmodell reale Konzepte in wiederverwendbaren Code verwandelt.
Java ist fundamental objektorientiert. Es zerlegt komplexe Probleme in handhabbare, in sich geschlossene Entitäten – Objekte – each mit Zustand und Verhalten.
Ein Objekt kann alles sein, das Daten (Zustand) hält und Aktionen (Verhalten) anbietet. Zum Beispiel hat ein Fahrrad:
- Zustände: Leerlauf, erster Gang, etc.
- Verhalten: Bremsen, Beschleunigen, etc.
Bevor wir in Objekte eintauchen, erkunden wir den Bauplan, der sie definiert: eine Klasse.
Java Klasse
Eine Klasse ist die Vorlage, aus der Objekte instanziiert werden. Denken Sie an einen Hausplan, der Stockwerke, Türen und Fenster spezifiziert. Mehrere Häuser können vom selben Plan gebaut werden, genau wie viele Objekte aus einer einzigen Klasse erstellt werden können.
Klasse in Java erstellen
Definieren Sie eine Klasse mit dem class-Schlüsselwort:
class ClassName {
// Felder
// Methoden
}
Felder (Variablen) halten den Zustand eines Objekts, während Methoden sein Verhalten kapseln.
- Felder speichern Daten.
- Methoden führen Operationen aus.
Beispiel: eine Bicycle-Klasse.
class Bicycle {
// Zustand
private int gear = 5;
// Verhalten
public void braking() {
System.out.println("Bremsen funktioniert");
}
}
Hier ist Bicycle ein Prototyp. Mehrere Fahrrad-Instanzen können erstellt werden, each teilt die gleiche Struktur, hält aber unabhängige Daten.
Hinweis: private und public sind Zugriffsmodifizierer, die die Sichtbarkeit steuern. Mehr Details unter Java Zugriffsmodifizierer.
Java Objekte
Ein Objekt ist eine Instanz einer Klasse. Zum Beispiel ist Bicycle die Klasse, und MountainBicycle, SportsBicycle, TouringBicycle etc. sind distinct Objekte, die von dieser Klasse abgeleitet sind.
Objekt in Java erstellen
Instanziieren Sie ein Objekt mit dem new-Schlüsselwort und dem Konstruktor der Klasse:
className object = new className(); // Für Bicycle
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();
Konstruktoren sind spezielle Methoden, die den Klassennamen teilen. Für weitere Lektüre erkunden Sie Java Konstruktoren.
Namen wie sportsBicycle und touringBicycle dienen als Referenzen auf ihre jeweiligen Instanzen.
Mehrere Instanzen derselben Klasse können koexistieren, ohne sich gegenseitig zu beeinträchtigen.
Hinweis: Klassenfelder und -methoden werden gemeinsam als Member bezeichnet.
Auf Klassenmember zugreifen
Verwenden Sie den Punktoperator mit einer Objektreferenz, um auf ihre Member zuzugreifen:
class Bicycle {
int gear = 5;
void braking() {
// ...
}
}
Bicycle sportsBicycle = new Bicycle();
sportsBicycle.gear;
sportsBicycle.braking();
Hier greift sportsBicycle auf das gear-Feld zu und ruft die braking()-Methode auf.
- sportsBicycle.gear – liest den Gangwert.
- sportsBicycle.braking() – ruft die Bremsroutine auf.
Im nächsten Kapitel erkunden wir Java-Methoden eingehend.
Unten finden Sie ein vollständiges Beispiel, das diese Konzepte zusammenbindet.
Beispiel: Java Klasse und Objekte
class Lamp {
// Verfolgt, ob die Lampe an ist
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Licht an? " + isOn);
}
void turnOff() {
isOn = false;
System.out.println("Licht an? " + isOn);
}
}
class Main {
public static void main(String[] args) {
Lamp led = new Lamp();
Lamp halogen = new Lamp();
led.turnOn();
halogen.turnOff();
}
}
Ausgabe:
Licht an? true Licht an? false
In diesem Programm definiert Lamp eine Instanzvariable isOn und zwei Methoden, die sie manipulieren. Die Main-Klasse erstellt zwei Lampenobjekte – led und halogen – und ruft ihre Methoden unabhängig auf.
Jedes Objekt hält seine eigene Kopie von isOn, wodurch sichergestellt wird, dass Operationen an einer Lampe die andere nicht beeinflussen.
Beispiel: Objekte innerhalb derselben Klasse erstellen
Objekte können auch innerhalb derselben Klasse instanziiert werden, die sie definiert. So geht's:
class Lamp {
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Licht an? " + isOn);
}
public static void main(String[] args) {
Lamp led = new Lamp();
led.turnOn();
}
}
Ausgabe
Licht an? true
Dieses Muster ist nützlich für kleine Demonstrationen oder Utility-Klassen, wo die Hauptlogik innerhalb derselben Klasse residiert.
Java
- C++ Klassen & Objekte: Praktischer Leitfaden zur objektorientierten Programmierung
- Java Variablen und Literale: Umfassender Leitfaden
- Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
- Java instanceof-Operator: Ein umfassender Leitfaden
- Java abstrakte Klassen und Methoden: Ein umfassender Leitfaden
- Java verschachtelte und innere Klassen meistern: Typen, Beispiele und Best Practices
- Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
- Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren