Kommunikation zwischen Objekten

+1

No comments posted yet

Comments

Slide 1

Kommunikation zwischen Objekten

Slide 2

Beziehungen zwischen Objekten Aggregation („enthält“-Beziehung, „ist Teil von“) Weitere Beziehungen z.B. benutzt, bucht, überweist Beziehungen zwischen Objekten nennt man Assoziationen

Slide 3

Beispiel: Schule

Slide 4

Assoziationen Arten: Ein Objekt nutzt Daten (Attributwerte) eines anderen Objekts Ein Objekt ruft Methoden eines anderen Objektes auf

Slide 5

Objekt: lehrer1 name: „Müller“ fach: „Mathematik“ …. Objekt: lehrer2 name: „Schmidt“ fach: „Sport“ … Methode: gruessenLehrer(lehrer2) „Guten Morgen Kollege Schmidt Eingabeparameter: Objekt vom Typ LEHRER Ausgabe verwendet Attributwert des Objekts Klasse: LEHRER Klasse: LEHRER

Slide 6

Objekt: lehrer1 name: „Müller“ fach: „Mathematik“ …. Objekt: klasse1 bezeichnung: „4a“ Anzahl_schueler: 29 Methode: gruessenKlasse(klasse1) „Guten Morgen Klasse 4a!“ Eingabeparameter: Objekt vom Typ KLASSE Ausgabe verwendet Attributwert des Objekts Klasse: KLASSE Klasse: LEHRER

Slide 7

Verwendung von Attributen Attribute sind normalerweise „privat“ Zugriff kann nur von Objekten der eigenen Klasse stattfinden Objekte fremder Klassen benötigen spezielle Lese- bzw. Schreibmethoden

Slide 8

Get-Methoden Erlauben Zugriff auf Attributwerte Bsp: Ausgabe der Klassenbezeichnung public String getBezeichnung() { return bezeichnung; } Zugriff auf die Methode ist öffentlich, d.h. auch von Objekten anderer Klassen ausführbar Attributwert wird von Methode innerhalb der Klasse ausgelesen und nach außen kommuniziert

Slide 9

Set-Methoen Attributwerte können von Objekten anderer Klassen nicht verändert werden Set-Methoden können die Veränderungen zulassen Bsp: Veränderung der Klassenbezeichnung public void setBezeichnung (String neueBezeichnung) { bezeichnung = neueBezeichnung; } Klar definierte Zugriffe von außen

Slide 10

Referenzierung Objekt, das Methoden oder Attribute eines zweiten Objekt nutzt, muss dieses kennen

Slide 11

Richtung der Assoziation Wer nutzt wen? Unidirektional Referenz nur in eine Richtung Objekt 1 kennt Objekt 2, aber nicht umgekehrt Bidirektional Referenz in beide Richtungen Die Objekte kennen sich gegenseitig

Slide 12

Multiplizität Wie viele Objekte der einen Klasse sind durch Assoziation jedem Objekt der anderen Klasse zugeordnet?

Slide 13

1:1 Beziehung < leitet 1 1 LEHRER KLASSE EIN Lehrer leitet EINE Klasse EINE Klasse wird von EINEM Lehrer geleitet 1:1 Assoziation

Slide 14

1:n Beziehung SCHUELER KLASSE < besteht_aus n 1 gehoert_zu Eine Klasse besteht aus MEHREREN Schülern Ein Schüler gehört zu EINER Klasse 1:n Assoziation

Slide 15

Klassendiagramm In einer Schule gibt es Lehrer, Klassen und Schüler. Jeder Lehrer hat einen Namen, Vornamen und Geschlecht. Jede Klasse hat eine Bezeichnung und wird von einem Klassleiter geleitet Jeder Schüler hat Name, Vorname, Geschlecht und eine Klasse, in die er geht. Eine Klasse wird von einem Lehrer geleitet. Jede Klasse besteht aus mehreren Schülern. Gib ein Klassendiagramm für die gegebene Situation an!

Slide 16

Lösung: Klassendiagramm

Slide 17

Programmierung Schreibe nach dem vorgegebenen Schema die Klassen mit ihren Attributen und gib auch geeignete Konstruktoren an! Lege einen Lehrer lehrer1 an. Lege eine Klasse klasse1 an, die von lehrer1 geleitet wird. Lege drei Schüler schueler1, schueler2 und schueler3 an, die in die Klasse klasse1 gehen. Inspiziere die Objekte und ihre Referenzen.

Slide 18

Lehrer public class Lehrer { // Attribute private String name; private String vorname; private char geschlecht; //'m' für männlich, 'w' für weiblich /** * Konstruktor für Objekte der Klasse Lehrer */ public Lehrer(String name_neu, String vorname_neu,char geschlecht_neu ) { name = name_neu; vorname = vorname_neu; geschlecht = geschlecht_neu; } }

Slide 19

Schueler public class Schueler { // Attribute private String name; private String vorname; private char geschlecht; private Klasse klasse; //stellt die Assoziation zu einem Objekt der Klasse Klasse her /** * Konstruktor fuer Objekte der Klasse Schueler */ public Schueler(String name_neu, String vorname_neu, char geschlecht_neu, Klasse k) { name = name_neu; vorname = vorname_neu; geschlecht = geschlecht_neu; klasse = k; } }

Slide 20

Klasse public class Klasse { // Attribute private String bezeichnung; private Lehrer leitung; //stellt die Beziehung zu einem Objekt der Klasse Lehrer her /** * Konstruktor für Objekte der Klasse Klasse */ public Klasse(String bez, Lehrer l) { bezeichnung = bez; leitung = l; }

Tags: programmierung java

URL:
More by this User
Most Viewed