OOP

Aus FI-Wiki
Version vom 2. Juni 2025, 09:36 Uhr von Moettke (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Natürlich! Hier ist eine übersichtliche Einführung in die **Objektorientierte Programmierung (OOP) in Java** im **MediaWiki-Stil**, wie du es bereits von DDL, DML und DQL kennst – ideal zur Dokumentation oder für Unterrichtszwecke: --- \== Objektorientierte Programmierung (OOP) in Java == Die objektorientierte Programmierung ist ein Paradigma, das Programme auf Basis von **Objekten** strukturiert. Java ist eine vollständig objektorientierte Spra…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Natürlich! Hier ist eine übersichtliche Einführung in die **Objektorientierte Programmierung (OOP) in Java** im **MediaWiki-Stil**, wie du es bereits von DDL, DML und DQL kennst – ideal zur Dokumentation oder für Unterrichtszwecke:

---

\== Objektorientierte Programmierung (OOP) in Java ==

Die objektorientierte Programmierung ist ein Paradigma, das Programme auf Basis von **Objekten** strukturiert. Java ist eine vollständig objektorientierte Sprache (mit Ausnahme der primitiven Datentypen).

---

\=== Klassen und Objekte ===

Eine Klasse ist eine Vorlage (Bauplan) für Objekte. Ein Objekt ist eine Instanz dieser Klasse.

public class Auto {
    String marke;
    int baujahr;

```
public void starten() {
    System.out.println("Motor startet");
}
```

}

Objekterzeugung:

Auto meinAuto = new Auto();
meinAuto.marke = "VW";
meinAuto.baujahr = 2022;
meinAuto.starten();

---

\=== Attribute und Methoden ===

  • **Attribute** (Felder): Eigenschaften eines Objekts
  • **Methoden**: Verhalten eines Objekts

---

\=== Konstruktoren ===

Ein Konstruktor initialisiert ein Objekt beim Erzeugen.

public class Auto {
    String marke;

```
public Auto(String marke) {
    this.marke = marke;
}
```

}

Aufruf:

Auto a = new Auto("BMW");

---

\=== this-Referenz ===

`this` verweist auf das aktuelle Objekt:

this.marke = marke;

---

\=== Kapselung (Encapsulation) ===

Attribute werden privat gemacht und über Getter/Setter kontrolliert.

public class Kunde {
    private String name;

```
public String getName() {
    return name;
}

public void setName(String n) {
    name = n;
}
```

}

---

\=== Vererbung (Inheritance) ===

Eine Klasse kann von einer anderen erben:

public class Fahrzeug {
    int geschwindigkeit;
}

public class Auto extends Fahrzeug {
int tueranzahl;
}

---

\=== Polymorphie ===

Ein Objekt kann mehrere Formen annehmen – z. B. durch Überschreiben (Overriding) von Methoden:

class Tier {
    public void geraeusch() {
        System.out.println("Ein Tier macht ein Geräusch");
    }
}

class Hund extends Tier {
public void geraeusch() {
System.out.println("Wuff!");
}
}

---

\=== Abstrakte Klassen ===

Dienen als Basisklassen mit nicht vollständiger Implementierung:

abstract class Figur {
    abstract double berechneFlaeche();
}

---

\=== Interfaces ===

Definieren nur die Methode, aber keine Implementierung:

interface Bewegbar {
    void bewege();
}

---

\=== Wichtige OOP-Prinzipien ===

  • **Kapselung** – Daten verbergen
  • **Vererbung** – Wiederverwendbarkeit
  • **Polymorphie** – Einheitliches Ansprechen unterschiedlicher Objekte
  • **Abstraktion** – Komplexität reduzieren

---