OOP: Unterschied zwischen den Versionen
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…“ |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
== 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). | 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). | ||
Zeile 9: | Zeile 5: | ||
--- | --- | ||
=== Klassen und Objekte === | |||
Eine Klasse ist eine Vorlage (Bauplan) für Objekte. Ein Objekt ist eine Instanz dieser Klasse. | Eine Klasse ist eine Vorlage (Bauplan) für Objekte. Ein Objekt ist eine Instanz dieser Klasse. | ||
Zeile 18: | Zeile 14: | ||
int baujahr; | int baujahr; | ||
public void starten() { | public void starten() { | ||
System.out.println("Motor startet"); | System.out.println("Motor startet"); | ||
} | } | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
Zeile 37: | Zeile 32: | ||
--- | --- | ||
=== Attribute und Methoden === | |||
* **Attribute** (Felder): Eigenschaften eines Objekts | * **Attribute** (Felder): Eigenschaften eines Objekts | ||
Zeile 44: | Zeile 39: | ||
--- | --- | ||
=== Konstruktoren === | |||
Ein Konstruktor initialisiert ein Objekt beim Erzeugen. | Ein Konstruktor initialisiert ein Objekt beim Erzeugen. | ||
Zeile 52: | Zeile 47: | ||
String marke; | String marke; | ||
public Auto(String marke) { | public Auto(String marke) { | ||
this.marke = marke; | this.marke = marke; | ||
} | } | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
Zeile 66: | Zeile 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== this-Referenz === | |||
`this` verweist auf das aktuelle Objekt: | `this` verweist auf das aktuelle Objekt: | ||
Zeile 76: | Zeile 71: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Kapselung (Encapsulation) === | |||
Attribute werden privat gemacht und über Getter/Setter kontrolliert. | Attribute werden privat gemacht und über Getter/Setter kontrolliert. | ||
Zeile 86: | Zeile 80: | ||
private String name; | private String name; | ||
public String getName() { | public String getName() { | ||
return name; | return name; | ||
Zeile 94: | Zeile 88: | ||
name = n; | name = n; | ||
} | } | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
Zeile 100: | Zeile 94: | ||
--- | --- | ||
=== Vererbung (Inheritance) === | |||
Eine Klasse kann von einer anderen erben: | Eine Klasse kann von einer anderen erben: | ||
Zeile 113: | Zeile 107: | ||
} </syntaxhighlight> | } </syntaxhighlight> | ||
=== Polymorphie === | |||
Ein Objekt kann mehrere Formen annehmen – z. B. durch Überschreiben (Overriding) von Methoden: | Ein Objekt kann mehrere Formen annehmen – z. B. durch Überschreiben (Overriding) von Methoden: | ||
Zeile 134: | Zeile 127: | ||
--- | --- | ||
=== Abstrakte Klassen === | |||
Dienen als Basisklassen mit nicht vollständiger Implementierung: | Dienen als Basisklassen mit nicht vollständiger Implementierung: | ||
Zeile 146: | Zeile 139: | ||
--- | --- | ||
=== Interfaces === | |||
Definieren nur die Methode, aber keine Implementierung: | Definieren nur die Methode, aber keine Implementierung: | ||
Zeile 160: | Zeile 153: | ||
\=== Wichtige OOP-Prinzipien === | \=== Wichtige OOP-Prinzipien === | ||
* | * '''Kapselung''' – Daten verbergen | ||
* | * '''Vererbung''' – Wiederverwendbarkeit | ||
* | * '''Polymorphie''' – Einheitliches Ansprechen unterschiedlicher Objekte | ||
* | * '''Abstraktion''' – Komplexität reduzieren | ||
--- | --- |
Version vom 2. Juni 2025, 09:38 Uhr
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
---