Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hartwig Ankney Geändert vor über 11 Jahren
1
Einführung in die Programmierung Klassendefinition und Objekte
Fakultät für Wirtschaftswissenschaften Einführung in die Programmierung Klassendefinition und Objekte Uwe Lämmel
2
Inhalt Klasse Methoden Parameter Erzeugung und Nutzung von Objekten
Bauplan: Zweck, Aufbau, Entwurf ausführbare Klasse Bibliotheksklasse Methoden Konstruktor Zugriff Ausgabe Verarbeitung Parameter Erzeugung und Nutzung von Objekten
3
Klasse repräsentiert alle Objekte eines Typs (Bauart), z.B.: "Student ", "Ticketautomat " beschreibt Objekte mittels: Daten = Merkmale (Attribute, Instanz-Variablen) Aktionen = Methoden
4
Ticket-Automat: Nutzersicht /externe Sicht
Beispiel: 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?
5
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
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 Sichtbarkeit Typ Name der Variable private int preis;
7
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
Daten-Übergabe mittels Parameter
TicketAutomat bus = new TicketAutomat(500);
9
Zuweisung (Assignment)
variable = expression; Werte in Variablen speichern: preis = ticketPreis; bisherGezahlt = 0; Variable speichert NUR EINEN Wert; vorheriger Wert verloren
10
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
Zugriffsmethode, lesend
Information über das Objekt besitzt Ergebnis-Typ und return-Anweisung return-Anweisung bestimmt Ergebnis Ergebnis-Typ Sichtbarkeit Methodenname Parameterliste public int getPreis(){ return preis; } //getPreis return-Anweisung bestimmt Ergebnis Kommentar zur schließenden Klammer Anfang und Ende des Methoden-Körpers (block)
12
Zugriffsmethode, schreibend
Verändert die Merkmale eines Objekts besitzt (meist) Parameter kein Ergebnis-Typ (void) enthält Zuweisungen an Instanz-Variable Sichtbarkeit (kein) Ergebnis-Typ Methodenname Parameterliste public void setPreis(int neu){ preis = neu; } //setPreis Zuweisung Kommentar zur schließenden Klammer Anfang und Ende des Methoden-Körpers (block)
13
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
Klasse = Bauplan Merkmale Konstruktoren Methoden 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
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
Ausführbare Klasse enthält main Methode: public static void main(String[ ] args) { … } kann als Programm ausgeführt werden: 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
17
Aufgabe selbst erarbeiten!
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
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
Digitale Uhr: Klassen und Objektinteraktion
Eine Anzeige aus 4 Ziffern? Zwei Anzeigen zu je 2 Ziffern?
20
Abstraktion und Modularisierung
Details ignorieren Konzentration auf Wesentliches Modularisierung Teilen der Aufgabe in kleinere Teile getrennte Lösung der Teilprobleme Interaktion der Teillösungen
21
Klasse Nummeranzeige public class Nummernanzeige { private int limit;
private int wert; // Konstruktor und // Methoden fehlen hier. } // Nummernanzeige
22
Klasse Uhrenanzeige public class Uhrenanzeige {
private Nummernanzeige stunden; private Nummernanzeige minuten; // Konstruktor und // Methoden fehlen hier! } // Uhrenanzeige
23
Objekt-Interaktion
24
Klassendiagramm
25
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
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 Methoden-Aufruf: setzWert(int wert) und gibAnzeigewert() in Klasse Nummernanzeige definieren!
27
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
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
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
Ende
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.