Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)

Ähnliche Präsentationen


Präsentation zum Thema: "Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)"—  Präsentation transkript:

1 Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Klassen und Objekte Klassendefinition Objektattribute (Instanzvariablen) Methoden (Parameterübergabe, Rückgabewert)

2 Das OO-Paradigma Abstraktion Kapselung Kommunikation über Botschaften
Klassenbildung Vererbung Polymorphismus

3 Abstraktion ist eine Repräsentation der für die Klasse intendierter Anwendungen wesentlichen Eigenschaften Abstraktion ermöglicht in frühen Entwicklungsstadien die Erfassung des Problemraumes Verdeckung von Details bei wichtigen Details wird in mehreren Ebenen abstrahiert

4 Kapselung Ergebnis der Kapselung ist eine Entität (Objekt) mit einer scharfen Abgrenzung von seiner Umgebung, einer wohldefinierten Schnittstelle und einer verborgenen internen Repräsentation wohldefinierte Schnittstelle Austauschbarkeit der Realisierung Objekte sind gut wartbar (z.B. Einbettung in Testumgebung) Verbergen Schutz vor Fehlern, die aufgrund von Annahmen über interne Realisierung entstehen Zugriff auf Attribute idealerweise nur über die Schnittstelle

5 Kommunikation über Botschaften
Eine Botschaft ist eine u.U. parametrisierte Nachricht, die der Kommunikation zwischen Objekten dient. Botschaften lösen in der Regel beim Empfängerobjekt (Re-)Aktionen aus. Die Parameterbelegung einer Botschaft kann die Art der Reaktion beeinflussen.

6 Objekt ist eine gekapselte, der Anwendung entsprechend abstrahierte Entität Jedes Objekt besitzt eine eindeutige Objektidentität einen Zustand, der durch eine Menge von Attributen beschrieben wird Verfahren, die auf eine definierte Menge von Botschaften entsprechend reagieren

7 Klassenbildung Gleichartige Objekte werden durch eine Klasse repräsentiert. Objekte sind Instanzen von Klassen Alle Objekte einer Klasse haben die gleichen Attribute und verstehen Botschaften auf dieselbe Art. Zu einer Klassendefinition gehören Klassenname Liste der Attribute (in Java: Variablen) Liste der Botschaften, die Objekte dieser Klasse verstehen können (in Java: Methoden)

8 Klassendefinition in Java
class Klassenname { Typ1 Variablename1; Typ2 Variablename2; . . . Rückgabewerttyp1 Methode1 (Parameterliste) { // Methodendefinition der 1. Methode } Rückgabewerttyp2 Methode2 (Parameterliste) { // Methodendefinition der 2. Methode

9 Beispiel zur Klassendefinition
class Rechteck { float breite, höhe; // Instanzvariablen (jedes Objekt der Klasse // Rechteck hat jeweils eigene Variablen) // Methode zur Berechnung des Flächeninhalts float fläche () { // keine Parameter; Rückgabewert vom Typ float float flächeninhalt; // lokale Variable (ex. nur in der Methode) flächeninhalt=breite*höhe; // Berechnung anhand der Instanzvariablen return flächeninhalt; // Rückgabe des berechneten Wertes } // Methode zur Ausgabe des Objekts (als Text) void ausgeben() { // keine Parameter; kein Rückgabewert System.out.println("Dieses Rechteck hat folgende Eigenschaften:"); System.out.print("Breite: "); System.out.println(breite); System.out.print("Höhe: "); System.out.println(höhe); System.out.print("Fläche: "); System.out.println(fläche()); // hier steckt ein Methodenaufruf!

10 Beispieldateien Datei zur vorangegangenen Folie:
Java Uebung 5\Rechteck.java

11 Erzeugen von Objekten Syntax: . . .
Klassenname Objektvariable; // Deklaration Objektvariable = new Klassenname (); // Instantiierung Beispiel: Rechteck my_rechteck1, my_rechteck2; my_rechteck1 = new Rechteck(); my_rechteck2 = new Rechteck();

12 Zugriff auf Instanzvariablen
Syntax: . . . Objektvariable.Instanzvariable = Wert ; Beispiel: my_rechteck = new Rechteck; my_rechteck.breite = 10; System.out.println(my_rechteck.breite);

13 Aufruf von Methoden Syntax: // Methode ohne Rückgabewert
Objektvariable.Methode1(Parameterliste); . . . // Methode mit Rückgabewert Variable = Objektvariable.Methode2(Parameterliste); Beispiel: my_rechteck.ausgeben(); float fläche; fläche=my_rechteck.fläche();

14 Beispiel zu Instantiierung, Variablen-zugriff und Methodenaufruf
class Rechteck { ... // hier Variablendeklaration & Methodendefinition aus vorigem Beispiel // einfügen public static void main (String args[]) { // Hauptprogramm Rechteck my_rechteck1; // Deklaration einer Objektvariablen my_rechteck1 = new Rechteck(); // Instantiierung eines Objekts my_rechteck1.breite = (float) 10.0; // Zugriff auf Variablen der my_rechteck1.höhe = (float) 5.0; // Instanz (Zuweisung eines Werts) my_rechteck1.ausgeben(); Rechteck my_rechteck2 = new Rechteck(); // 2. Objekt dekl. & instant. my_rechteck2.breite = my_rechteck1.breite - (float) 2.0; my_rechteck2.höhe = (float) 7.5; my_rechteck2.ausgeben(); // Die beiden Objekte der Klasse Rechteck haben jeweils einen // eigenen Zustand, der durch die Wertebelegung der Instanzvariablen // breite und höhe gegeben ist ((b=10.0,h=5.0) und (b=8.0,h=7.5)). }

15 Beispieldateien Datei zur vorangegangenen Folie:
Java Uebung 5\Rechteck.java

16 Übungsaufgaben Entwerfen Sie analog zur Definition von Rechtecken die Klassendefinitionen für Dreiecke, Kreise, Ellipsen und Trapeze. Als Methoden sollten mindestens die Flächenberechnung und die textuelle Ausgabe der Variableninhalte zur Verfügung gestellt werden. Entwerfen Sie die Klasse Student, die alle zur Verwaltung eines Studentenregisters wesentlichen Informationen beinhaltet. Welche Methoden können Sie sich dazu vorstellen? Welche Informationen (Variablen & Methoden) sind auch auf Dozenten oder Verwaltungsangestellte anwendbar?


Herunterladen ppt "Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)"

Ähnliche Präsentationen


Google-Anzeigen