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

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
Objektorientierte Programmierung
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Definition von Klassen in Java
Einführung in die Programmierung Zusammenfassung
Objektorientierte Programmierung Definition von Klassen
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Einführung in die Programmierung mit Java
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
Programmieren mit JAVA
Abstrakte Klassen DVG
DVG Einführung in Java1 Einführung in JAVA.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Einführung in die Programmierung Klassendefinition und Objekte
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Objektorientiertes Konstruieren
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Programmiervorkurs WS 2014/15 Instanzmethoden
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 5. Vorlesung WS 2001/2002.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Einführung in die Programmierung mit Java
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
November 18 Informatik Kurse
Von Cem, Maurice und lars
Michael Barth, Fabian Birzele und Gefei Zhang
«Delegierter» Methoden Schablone Funktionszeiger
Implementieren von Klassen
 Präsentation transkript:

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

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

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

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

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.

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

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)

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

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!

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

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();

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

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();

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)). }

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

Ü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?