Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Klassendefinition und Objekte Folie 1 Uwe Lämmel Einführung in die Programmierung Klassendefinition und Objekte Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Ähnliche Präsentationen


Präsentation zum Thema: "Klassendefinition und Objekte Folie 1 Uwe Lämmel Einführung in die Programmierung Klassendefinition und Objekte Uwe Lämmel Fakultät für Wirtschaftswissenschaften."—  Präsentation transkript:

1 Klassendefinition und Objekte Folie 1 Uwe Lämmel Einführung in die Programmierung Klassendefinition und Objekte Uwe Lämmel Fakultät für Wirtschaftswissenschaften

2 Klassendefinition und Objekte Folie 2 Uwe Lämmel Inhalt Klasse –Bauplan: Zweck, Aufbau, Entwurf –ausführbare Klasse –Bibliotheksklasse Methoden –Konstruktor –Zugriff –Ausgabe –Verarbeitung Parameter Erzeugung und Nutzung von Objekten

3 Klassendefinition und Objekte Folie 3 Uwe Lämmel Klasse repräsentiert alle Objekte eines Typs (Bauart), z.B.: "Student ", "Ticketautomat " beschreibt Objekte mittels: –Daten = Merkmale (Attribute, Instanz-Variablen) –Aktionen = Methoden

4 Klassendefinition und Objekte Folie 4 Uwe Lämmel Ticket-Automat: Nutzersicht /externe Sicht Ein naiver Ticket-Automat: –liefert Tickets zum festen Preis Fragen: –Wie wird dieser Festpreis festgelegt? –Wie wird "Geld eingeworfen"? –Wie verwaltet der Automat das Geld? Beispiel:

5 Klassendefinition und Objekte Folie 5 Uwe Lämmel Ticket-Automat: interne Sicht Klasse muss Objekte so beschreiben, dass gewünschtes Verhalten erreicht wird Merkmale?Methoden? preis bisherGezahlt gesamtsumme anzVerkaufterTickets Konstruktor getPreis getBisherGezahlt geldEinwerfen ticketDrucken

6 Klassendefinition und Objekte Folie 6 Uwe Lämmel Merkmal (Datenfeld, Instanz-Variable) Instanz-Variablen speichern Merkmale BlueJ: "inspect" zeigt die Merkmale eines Objekts Werte der Instanz-Variablen = Zustand eines Objekts public class TicketAutomat{ private int preis; private int bisherGezahlt; private int gesamtsumme; //hier: Konstruktoren und Methoden } //TicketAutomat private int preis; SichtbarkeitTypName der Variable

7 Klassendefinition und Objekte Folie 7 Uwe Lämmel Konstruktoren … erzeugen ein Objekt … haben denselben Namen wie die Klasse … legen Anfangswerte für Merkmale fest: häufig: Anfangswert als Parameter "von außen" public TicketAutomat (int ticketPreis) { preis= ticketPreis; bisherGezahlt= 0; gesamtsumme= 0; anzTickets= 0; } // TicketAutomat

8 Klassendefinition und Objekte Folie 8 Uwe Lämmel Daten-Übergabe mittels Parameter TicketAutomat bus = new TicketAutomat(500);

9 Klassendefinition und Objekte Folie 9 Uwe Lämmel Zuweisung (Assignment) Werte in Variablen speichern: preis = ticketPreis; bisherGezahlt = 0; Variable speichert NUR EINEN Wert; vorheriger Wert verloren variable = expression;

10 Klassendefinition und Objekte Folie 10 Uwe Lämmel Methoden legen das Verhalten von Objekten fest unterscheiden: –Konstruktor-Methoden –Zugriffsmethoden (lesend, schreibend) –Verarbeitungsmethoden –Ausgabe-Methoden einheitlicher Aufbau: –Kopf (Signatur) public int getPreis() –Körper { … Anweisungen … }

11 Klassendefinition und Objekte Folie 11 Uwe Lämmel Zugriffsmethode, lesend Information über das Objekt besitzt Ergebnis-Typ und return-Anweisung return-Anweisung bestimmt Ergebnis public int getPreis(){ return preis; } //getPreis Ergebnis-Typ Methodenname Anfang und Ende des Methoden-Körpers (block) return-Anweisung bestimmt Ergebnis Sichtbarkeit Kommentar zur schließenden Klammer Parameterliste

12 Klassendefinition und Objekte Folie 12 Uwe Lämmel Zugriffsmethode, schreibend Verändert die Merkmale eines Objekts besitzt (meist) Parameter kein Ergebnis-Typ (void) enthält Zuweisungen an Instanz-Variable public void setPreis(int neu){ preis = neu; } //setPreis (kein) Ergebnis-Typ Methodenname Anfang und Ende des Methoden-Körpers (block) Zuweisung Sichtbarkeit Kommentar zur schließenden Klammer Parameterliste

13 Klassendefinition und Objekte Folie 13 Uwe Lämmel Ausgabemethode KEINE Verarbeitung nur Ausgabe der Objekt-Werte in gewünschter Form 2 Möglichkeiten: –direkte Ausgabe : Ergebnistyp void, Ausgabe: System.out.println(…); –toString-Methode: Ergebnistyp String und return-Anweisung public void ausgabe() { System.out.println("Preis=" + preis + " Geldsumme= "+gesamtsumme); } //ausgabe public String toString() { return "Preis=" + preis + " Geldsumme= "+gesamtsumme; } //toString

14 Klassendefinition und Objekte Folie 14 Uwe Lämmel Klasse = Bauplan class Klasse { // Merkmale = Instanz-Variablen (private) private int number; // Konstruktor(en) mit/ohne Parameter public Klasse( ) { /* Initialisierungen */ } // Zugriffsmethoden: getX/setX public int getNumber() { return number;} public void setNumber(int n) { number=n; } // Arbeitsmethoden public boolean istTeiler(int a) { … } // Ausgabe public void ausgabe() { System.out.println("Nummer= "+number); } }//Klasse – Merkmale – Konstruktoren – Methoden

15 Klassendefinition und Objekte Folie 15 Uwe Lämmel Klasse TicketAutomat Beispiel in BlueJ entwickeln. Klasse testen: –TicketAutomat-Objekt erzeugen –Methoden an das Objekt senden –mittels "inspect" Zustand des Objekts einsehen –Schreiben einer ausführbaren Klasse

16 Klassendefinition und Objekte Folie 16 Uwe Lämmel Ausführbare Klasse class Klasse { // main-Methode: public static void main(String[ ] args) { // Verarbeitung TicketAutomat bus = new TicketAutomat(500); bus.geldEinwerfen(200); bus.ticketDrucken(); bus.ausgabe(); System.out.println(bus); }//main }//Klasse enthält main Methode: public static void main(String[ ] args) { … } kann als Programm ausgeführt werden:

17 Klassendefinition und Objekte Folie 17 Uwe Lämmel Aufgabe Machen Sie sich mit dem Projekt "Naiver-Ticket-Automat" vertraut. Verbessern Sie den Ticket-Automaten: –Es wird ein Ticket nur gedruckt, falls genügend (ev. auch mehr) Geld eingeworfen wurde. –Eine Methode gibt das Wechselgeld heraus. –Es werden nur sinnvolle Geldbeträge in der Methode "geldEinwerfen" akzeptiert. selbst erarbeiten!

18 Klassendefinition und Objekte Folie 18 Uwe Lämmel Zusammenfassung Klassen bilden reale/virtuelle Welt ab Klassen beschreiben Objekte Klasse: Merkmale, Konstruktoren, Methoden Merkmale = Instanzen-Variablen –Menge der Werte = Zustand des Objekts Konstruktor: erzeugt Objekt Zugriffsmethoden: lesend, schreiben Methoden können … –Zustand des Objekts ändern –Parameter besitzen –ein Ergebnis liefern Zuweisung Wert an Variable: Speicher

19 Klassendefinition und Objekte Folie 19 Uwe Lämmel Digitale Uhr: Klassen und Objektinteraktion Eine Anzeige aus 4 Ziffern? Zwei Anzeigen zu je 2 Ziffern?

20 Klassendefinition und Objekte Folie 20 Uwe Lämmel Abstraktion und Modularisierung Abstraktion –Details ignorieren –Konzentration auf Wesentliches Modularisierung –Teilen der Aufgabe in kleinere Teile –getrennte Lösung der Teilprobleme –Interaktion der Teillösungen

21 Klassendefinition und Objekte Folie 21 Uwe Lämmel Klasse Nummeranzeige public class Nummernanzeige { private int limit; private int wert; // Konstruktor und // Methoden fehlen hier. } // Nummernanzeige

22 Klassendefinition und Objekte Folie 22 Uwe Lämmel Klasse Uhrenanzeige public class Uhrenanzeige { private Nummernanzeige stunden; private Nummernanzeige minuten; // Konstruktor und // Methoden fehlen hier! } // Uhrenanzeige

23 Klassendefinition und Objekte Folie 23 Uwe Lämmel Objekt-Interaktion

24 Klassendefinition und Objekte Folie 24 Uwe Lämmel Klassendiagramm

25 Klassendefinition und Objekte Folie 25 Uwe Lämmel Klasse Uhrenanzeige public class Uhrenanzeige { private Nummernanzeige stunden; private Nummernanzeige minuten; private String zeitanzeige; // techn. Gründe public Uhrenanzeige (){ stunden = new Nummernanzeige(24); minuten = new Nummernanzeige(60); anzeigeAktualisieren(); } // Uhrenanzeige // hier folgen weitere Methoden! } // Uhrenanzeige Merkmale Konstruktor

26 Klassendefinition und Objekte Folie 26 Uwe Lämmel Methoden der Klasse Uhrenanzeige public String gibUhrzeit(){ return zeitanzeige; } public void setzeUhrzeit(int stunde, int minute){ stunden.setzeWert(stunde); minuten.setzeWert(minute); anzeigeAktualisieren(); } //setzeUhrzeit private void anzeigeAktualisieren(){ zeitanzeige = stunden.gibAnzeigewert() + ":" + minuten.gibAnzeigewert(); } //anzeigeAktualisieren setzWert(int wert) und gibAnzeigewert() in Klasse Nummernanzeige definieren! Methoden-Aufruf:

27 Klassendefinition und Objekte Folie 27 Uwe Lämmel Methoden der Klasse Uhrenanzeige /** * - Operation einmal pro Minute aufrufen * - sorgt dafür, dass diese Uhrenanzeige um eine Minute * weiter gestellt wird. */ public void taktsignalGeben( ) { minuten.erhoehen( ); if (minuten.gibWert( ) == 0) { // Limit wurde erreicht! stunden.erhoehen( ); } //if anzeigeAktualisieren(); } //taktsignalGeben

28 Klassendefinition und Objekte Folie 28 Uwe Lämmel Methoden der Klasse Nummernanzeige public Nummernanzeige(int anzeigeLimit) { limit = anzeigeLimit; wert = 0; } //Konstruktor // Zugriffsmethoden: public int gibWert() { return wert; } public String gibAnzeigewert() { if(wert<10) { return "0" + wert;} else { return "" + wert; } } //gibAnzeigewert public void setzeWert(int ersatzwert) { if((ersatzwert >= 0) && (ersatzwert < limit)) { wert = ersatzwert; } //if } //setzeWert

29 Klassendefinition und Objekte Folie 29 Uwe Lämmel Zusammenfassung Klassen bilden reale/virtuelle Welt ab Klassen beschreiben Objekte Klasse: Merkmale, Konstruktoren, Methoden Merkmale = Instanzen-Variablen –Menge der Werte = Zustand des Objekts Konstruktor: erzeugt Objekt Zugriffsmethoden: lesend, schreiben Methoden können … –Zustand des Objekts ändern –Parameter besitzen –ein Ergebnis liefern Objekte können andere Objekte benutzen Klassen fördern Modularisierung Modularisierung fördert Wiederverwendung

30 Klassendefinition und Objekte Folie 30 Uwe Lämmel Ende


Herunterladen ppt "Klassendefinition und Objekte Folie 1 Uwe Lämmel Einführung in die Programmierung Klassendefinition und Objekte Uwe Lämmel Fakultät für Wirtschaftswissenschaften."

Ähnliche Präsentationen


Google-Anzeigen