Appearance
Kapitel 12: Häufige Schlüsselwörter
🎯 Lernziele
staticSchlüsselwort (Klassenvariable/-methode)finalSchlüsselwort (Konstante, unveränderliche Klasse)- Code-Blöcke (Static/Instance Initializer)
- Innere Klassen (Inner Classes) Einstieg
12.1 static Schlüsselwort
🔧 Was ist static?
static = Gehört zur Klasse, nicht zum Objekt.
Mit static | Ohne static |
|---|---|
| Klassenvariable/-methode | Instanzvariable/-methode |
Über Klasse aufrufbar (Klasse.methode()) | Über Objekt aufrufbar (obj.methode()) |
| Nur eine Kopie für alle Objekte | Jedes Objekt hat eigene Kopie |
📋 Beispiel: static Variable & Methode
java
class BeispielKlasse {
static int zaehler = 0; // Klassenvariable (gemeinsam!)
int id; // Instanzvariable (einzeln)
BeispielKlasse() {
zaehler++; // Erhöht gemeinsamen Zähler
this.id = zaehler;
}
static void zeigeZaehler() { // Klassenmethode
System.out.println("Zähler: " + zaehler);
}
}
public class StaticBeispiel {
public static void main(String[] args) {
BeispielKlasse.zeigeZaehler(); // Über Klasse aufrufen!
BeispielKlasse b1 = new BeispielKlasse();
BeispielKlasse b2 = new BeispielKlasse();
System.out.println(b1.id); // 1
System.out.println(b2.id); // 2
BeispielKlasse.zeigeZaehler(); // 2
}
}12.2 final Schlüsselwort
🔒 Was ist final?
final = Unveränderlich.
| Verwendung | Bedeutung |
|---|---|
final Variable | Konstante (Wert kann nicht geändert werden) |
final Methode | Kann nicht überschrieben werden |
final Klasse | Kann nicht vererbt werden |
📋 Beispiel: final Variable & Klasse
java
final class UnveränderlicheKlasse { // Kann nicht vererbt werden!
final double PI = 3.14159; // Konstante (Großbuchstaben!)
final void methode() { // Kann nicht überschrieben werden!
System.out.println("Final Methode");
}
}
// ❌ Fehler: Kann UnveränderlicheKlasse nicht erweitern!
// class Kind extends UnveränderlicheKlasse {}12.3 Code-Blöcke
🏗️ Arten von Code-Blöcken
| Code-Block | Ausführungszeitpunkt | Zweck |
|---|---|---|
| Static Initializer | Beim Laden der Klasse (einmalig) | Klassenvariablen initialisieren |
| Instance Initializer | Bei jedem Objekt-Erstellen (vor Konstruktor) | Instanzvariablen initialisieren |
📋 Beispiel: Static & Instance Initializer
java
class Beispiel {
static int staticVar;
int instanceVar;
// Static Initializer (einmalig!)
static {
staticVar = 100;
System.out.println("Static Initializer ausgeführt!");
}
// Instance Initializer (bei jedem Objekt!)
{
instanceVar = 50;
System.out.println("Instance Initializer ausgeführt!");
}
Beispiel() {
System.out.println("Konstruktor ausgeführt!");
}
}
public class CodeBlockBeispiel {
public static void main(String[] args) {
System.out.println("Erstes Objekt:");
Beispiel b1 = new Beispiel();
System.out.println("\nZweites Objekt:");
Beispiel b2 = new Beispiel();
}
}Ausgabe:
Static Initializer ausgeführt! (Nur einmal!)
Erstes Objekt:
Instance Initializer ausgeführt!
Konstruktor ausgeführt!
Zweites Objekt:
Instance Initializer ausgeführt!
Konstruktor ausgeführt!12.4 Innere Klassen (Inner Classes) Einstieg
🏠 Was sind innere Klassen?
Innere Klasse = Eine Klasse, die innerhalb einer anderen Klasse definiert wird.
Vorteile:
- ✅ Zugriff auf
privateMitglieder der äußeren Klasse - ✅ Logische Gruppierung von Klassen
📋 Beispiel: Innere Klasse
java
class AeußereKlasse {
private String geheim = "Ich bin privat!";
class InnereKlasse { // Innere Klasse
void zugreifen() {
System.out.println("Zugriff auf: " + geheim); // Darf auf private zugreifen!
}
}
void methode() {
InnereKlasse inner = new InnereKlasse();
inner.zugreifen();
}
}
public class InnerClassBeispiel {
public static void main(String[] args) {
AeußereKlasse aeuss = new AeußereKlasse();
aeuss.methode(); // Zugriff auf: Ich bin privat!
}
}📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅
static= Klassenmitglied (nicht objektspezifisch) - ✅
final= Unveränderlich (Konstante, nicht vererbbar) - ✅ Code-Blöcke (Static/Instance Initializer)
- ✅ Innere Klassen (Zugriff auf äußere
privateMitglieder)
💡 Merksatz für Anfänger
"
staticgehört zur Klasse,finalmacht unveränderlich!"
🎯 Nächste Schritte
Im nächsten Kapitel lernst du:
- String Klasse (Kapitel 13)
- String-Grundlagen
- Häufige String-Methoden
- StringBuffer & StringBuilder
📚 Weiterführende Links:
💬 Fragen?
Hinterlassen Sie einen Kommentar!
