Vorlesung im Herbstwintersemester Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Größe: px
Ab Seite anzeigen:

Download "Vorlesung im Herbstwintersemester 2007. Autorisierte studentisch Lösungen zu Aufgabenblatt 2"

Transkript

1 Praktische Informatik I Vorlesung im Herbstwintersemester 2007 Autorisierte studentisch Lösungen zu Aufgabenblatt 2 zusammengestellt von Iva Tsvetkova Präsenzaufgaben 1.1 Entwurf einer Verwaltung von Stammdaten, Seite Implementierung der Verwaltung von Stammdaten, Seite 4 2. Übungsaufgaben 2.1 Entwürfe der Klasse Konto, Seite Mögliche Implementierungen der Klasse Konto, Seite Entwürfe der Klassen Girokonto und Sparkonto, Seite 18 1

2 2.4 Mögliche Implementierungen der Klassen GiroKonto und SparKonto, Seite 23 1.Präsenzaufgaben 1.1 Entwurf der Klasse Student Die Klasse Student verwaltet die Stammdaten der Studierenden der Universität Mannheim. Für jeden Studenten sollen den Namen, den Vornamen, das Studienfach und das Fachsemester verwaltet werden. Die Variable name ist vom Typ String, da der Name des Studenten eine Zeichenkette ist und sie ist private, damit sie nicht willkürlich von außerhalb der Klasse verändert werden kann und erst dann einer Methode übergeben wird, nachdem ihre Konsistenz geprüft wurde. private String name Die Variable vorname ist vom Typ String, da der Vorname des Studenten eine Zeichenkette ist und sie ist private, damit sie nicht willkürlich von außerhalb der Klasse verändert werden kann und erst dann einer Methode übergeben wird, nachdem ihre Konsistenz geprüft wurde. private String vorname Die Variable studienfach ist vom Typ String, da das Studienfach des Studenten eine Zeichenkette ist und sie ist private, damit sie nicht willkürlich von außerhalb der Klasse verändert werden kann und erst dann einer Methode übergeben wird, nachdem ihre Konsistenz geprüft wurde. private String studienfach Die Variable fachsemester ist vom Typ Integer, da das Fachsemester des Studenten eine Zahl ist und sie ist private, damit sie nicht willkürlich von außerhalb der Klasse verändert werden kann und erst dann einer Methode übergeben wird, nachdem ihre Konsistenz geprüft wurde. private int fachsemester // Konstruktoren Die Klasse Student enthält einen Konstruktor zum Anlegen eines Erstsemesters. Dabei wird das Fachsemester auf 1 name : der Name des neuen Studenten 2

3 @param vorname : der Vorname des neuen studienfach: das Studienfach des neuen Studenten public Student ( String name, String vorname, String studienfach) Die Klasse Student enthält einen Konstruktor zum Anlegen eines Studenten im höherem name : der Name des neuen vorname : der Vorname des neuen studienfach: das Studienfach des neuen fachsemester: das Fachsemester des neuen Studenten public Student ( String name, String vorname, String studienfach, int fachsemester) // Methoden Observer Methode, die eine Zeichenkette, den Namen des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse den Namen des Studenten lesen name public String getname() Mutator Methode, die als Parameter eine Zeichenkette, den Namen eines Studenten bekommt und diesem der Variablen namen zuweist. Die Methode ist public, damit man von außerhalb der Klasse den Namen des Studenten ändern name public void setname(string name) Observer Methode, die eine Zeichenkette, den Vornamen des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse den Vornamen des Studenten lesen vorname public String getvorname() Mutator Methode, die als Parameter eine Zeichenkette, den Vornamen eines Studenten bekommt und diesem der Variablen vornamen zuweist. Die Methode ist public, damit man von außerhalb der Klasse den Vornamen des Studenten ändern vorname public void setvorname(string vorname) Observer Methode, die eine Zeichenkette, das Studienfach des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse das Studienfach des Studenten lesen studienfach public String getstudienfach() Mutator Methode, die als Parameter eine Zeichenkette,das Studienfach eines Studenten bekommt und diesem der Variablen studienfach zuweist. Die Methode ist public, damit man von außerhalb der Klasse das Studienfach des Studenten ändern studienfach 3

4 public void setstudienfach(string studienfach) Observer Methode, die eine Zahl,das Fachsemester des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse das Fachsemester des Studenten lesen fachsemester public int getfachsemester() Mutator Methode, die als Parameter eine Zahl, das Fachsemester eines Studenten bekommt und diesem der Variablen fachsemester zuweist. Die Methode ist public, damit man von außerhalb der Klasse das Fachsemester des Studenten ändern fachsemester public void setfachsemester(int fachsemester) 1.2 Implementierung der Klasse Student Die Klasse Student verwaltet die Stammdaten der Studierenden der Universität Mannheim. Für jeden Studenten sollen den Namen, den Vornamen, das Studienfach und das Fachsemester verwaltet Iva 1 public class Student Die Variablen name, vorname, studienfach sind vom Typ String, da sie eine Zeichenkette sind. Die Variable fachsemester ist vom Typ Integer, da das Fachsemester eine Zahl ist. Alle Variablen sind private, damit sie nicht willkürlich von außerhalb der Klasse verändert werden können und erst dann einer Methode übergeben werden, nachdem ihre Konsistenz geprüft wurde. private String name; private String vorname; private String studienfach; private int fachsemester; Konstruktoren Die Klasse Student enthält einen Konstruktor zum Anlegen eines Erstsemesters. 4

5 Dabei wird das Fachsemester auf 1 name : der Name des neuen vorname : der Vorname des neuen studienfach: das Studienfach des neuen Studenten public Student(String name, String vorname, String studienfach) this.name = name; this.vorname = vorname; this.studienfach = studienfach; this.fachsemester = 1; Die Klasse Student enthält einen Konstruktor zum Anlegen eines Studenten im höherem name : der Name des neuen vorname : der Vorname des neuen studienfach: das Studienfach des neuen fachsemester: das Fachsemester des neuen Studenten public Student(String name, String vorname, String studienfach, int fachsemester) this.name = name; this.vorname = vorname; this.studienfach = studienfach; this.fachsemester = fachsemester; // Methoden Observer Methode, die eine Zeichenkette, den Namen des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse den Namen des Studenten lesen name public String getname() return this.name; Mutator Methode, die als Parameter eine Zeichenkette, den Namen eines Studenten bekommt und diesem der Variablen namen zuweist. Die Methode ist public, damit man von außerhalb der Klasse den Namen des Studenten ändern name public void setname(string name) this.name = name; Observer Methode, die eine Zeichenkette, den Vornamen des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse den Vornamen des Studenten lesen vorname public String getvorname() return this.vorname; Mutator Methode, die als Parameter eine Zeichenkette, den Vornamen eines Studenten bekommt und diesem der Variablen vornamen zuweist. Die Methode ist public, damit man von außerhalb der Klasse den Vornamen des Studenten ändern vorname 5

6 public void setvorname(string vorname) this.vorname = vorname; Observer Methode, die eine Zeichenkette, das Studienfach des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse das Studienfach des Studenten lesen studienfach public String getstudienfach() return this.studienfach; Mutator Methode, die als Parameter eine Zeichenkette,das Studienfach eines Studenten bekommt und diesem der Variablen studienfach zuweist. Die Methode ist public, damit man von außerhalb der Klasse das Studienfach des Studenten ändern studienfach public void setstudienfach(string studienfach) this.studienfach = studienfach; Observer Methode, die eine Zahl,das Fachsemester des Studenten zurückliefert. Die Methode ist public, damit man von außerhalb der Klasse das Fachsemester des Studenten lesen fachsemester public int getfachsemester() return this.fachsemester; Mutator Methode, die als Parameter eine Zahl, das Fachsemester eines Studenten bekommt und diesem der Variablen fachsemester zuweist. Die Methode ist public, damit man von außerhalb der Klasse das Fachsemester des Studenten ändern fachsemester public void setfachsemester(int fachsemester) this.fachsemester = fachsemester; 2.Übungsaufgaben 2.1Entwurf der Klasse Konto a) 6

7 7

8 Kommentare zum Entwurf: Die Variablen sind zwar als private gedacht, aber es fehlen die entsprechenden getter und setter Methoden für alle Variablen. Eine Erklärung warum, diese vielleicht unnötig oder sogar unerwünscht sind, wäre hilfsreich, sowie eine Erklärung aus welchen Gründen die Variablen als private deklariert werden, wie das der Fall bei den statischen Variablen ist. 8

9 b) Aufgabe 1 Entwurf: Klasse Konto Felder private String inhaber; private int kontostand; private int kontonummer; // speichert den Namen des Kontoinhabers // speichert den Kontostand // speichert die Kontonummer private static int naechstekontonummer; / speichert die nächste Kontonummer, die vergeben wird. Konstruktoren Konto(String name); kontostand auf 0 kontonummer wird die nächste Kontonummer zugewiesen. / legt ein neues Konto an. name wird in inhaber gespeichert, gesetzt und Methoden getter String getinhaber(); int getkontostand(); int getkontonummer(); // gibt inhaber zurück // gibt kontostand zurück // gibt kontonummer zurück void druckekontoauszug(); / gibt Name, Kontonummer und Kontostand auf der Konsole aus setter void einzahlen(int betrag); void abheben(int betrag); void ueberweisen(konto zielkonto, // erhöht kontostand um betrag // verringert kontostand um betrag // führt abheben(betrag) und 9

10 aus int betrag); // zielkonto.einzahlen(betrag) 2.2 Mögliche Implementierungen der Klasse Konto a) Klasse: Konto Mit dieser Klasse lassen sich Objekte erstellen, die als Bankkonten fungieren //Beginn der Klasse Konto class Konto // // Objektfelder // Diese Variable speichert die Kontonummer des Kontos int nummer; In dieser Variable wird der Kontostand abgespeichert private int kontostand; In dieser Variable wird der Name des Kontoinhabers abgespeichert private String inhaber; Diese Variable speichert die letzte Aktion die der Kunde mit seinem Konto getätigt hat private String letzteaktion = "Keine!"; Die Variable speichert die Höhe des Betrags der letzten Aktion private int letzterbetrag = 0; // // Klassenfelder // Dieses Klassenfeld ermögicht es die Konten geordnet durchzunummerieren. Beginnend bei 1 aufwärts... private static int aktuellekontonummer; // // Konstruktor // Erstellt ein neues Konto. Bitte geben sie den Namen des Kontobesitzers name der Name des Kontobesitzers Konto(String name) //Erhöhe die aktuelle Kotonummer um eins. aktuellekontonummer++; //Der Variable nummer wird der Wert von neuenummer zugewiesen nummer = aktuellekontonummer; //Der Kontostand beträgt am Anfang 0 Û 10

11 kontostand = 0; //Der Variable inhaber wird der Wert von name zugewiesen inhaber = name; Erstellt ein neues Konto. Bitte geben sie den Namen des Kontobesitzers und das Anfangsguthaben name der Name des betrag die Höhe des Anfangsguthabens Konto(String name, int betrag) //Erhöhe die aktuelle Kotonummer um eins. aktuellekontonummer++; //Der Variable nummer wird der Wert von neuenummer zugewiesen nummer = aktuellekontonummer; //Der Kontostand beträgt am Anfang der Höhe des Anfangsguthabens kontostand = betrag; //Der Variable inhaber wird der Wert von name zugewiesen inhaber = name; Erstellt ein neues Konto. Bitte geben sie den Namen des Kontobesitzers und den Werber ein... (dieser bekommt 50 name der Name des werber das Konto des Werbers Konto(String name, Konto werber) //Erhšhe die aktuelle Kotonummer um eins. aktuellekontonummer++; //Der Variable nummer wird der Wert von neuenummer zugewiesen nummer = aktuellekontonummer; //Der Kontostand beträgt am Anfang 0 kontostand = 0; //Der Werber erhällt als Geschnk 50 Û... werber.einzahlen(50); //Der Variable inhaber wird der Wert von name zugewiesen inhaber = name; // // Methoden // Observer Methode: Gibt den Kontostand aus int zeigekontostand() return kontostand; Methode zum erstellen eines Kontoauszug (bzw. "druckt" einen Auszug)... void druckekontoauszug() 11

12 //"Löscht" die Konsole, indem viele leere Zeilen eingefügt werden for (int i=0; i<25; i++) System.out.println(); //Ausgabe des Kontoauszugs (Einleitender Text)... System.out.println(" Willkommen bei der BlueJ Bank" + "\n" + " Mannheim"); System.out.println(" " + "\n" + " Kontoauszug"); System.out.println(" für die Person: " + inhaber + "\n" + " Kontonummer: " + nummer); System.out.println(" "); //Ausgabe der letzten Aktion, die der Kunde mit seinem Konto gemacht hat if ("Keine!".equals(letzteAktion)) System.out.println(" Sie haben bis jetzt noch nichts" + "\n" + " mit ihrem Konto gemacht..."); else if ("Einzahlung".equals(letzteAktion)) System.out.println(" Letzte Aktion:"); System.out.println(" Einzahlung von " + letzterbetrag + " Û"); else if ("Abhebung".equals(letzteAktion)) System.out.println(" Letzte Aktion:"); System.out.println(" Abhebung von " + letzterbetrag + " Û"); else if (" berweisung".equals(letzteaktion)) System.out.println(" Letzte Aktion:"); System.out.println(" berweisung von " + letzterbetrag + " Û"); else if ("Zinsgutschrift".equals(letzteAktion)) System.out.println(" Letzte Aktion:"); System.out.println(" Zinsgutschrift von " + letzterbetrag + " Û"); " Û"); //Ausgabe des aktuellen Kontostandes System.out.println(" "); System.out.println(" Ihr Kontostand beträgt: " + kontostand + System.out.println(" "); Mutator Methode: Etwas auf das Konto betrag der einzuzahlende Betrag void einzahlen(int betrag) kontostand += betrag; // Bedeutet kontostand = kontostand + betrag letzterbetrag = betrag; // Setze letzter Betrag auf den Wert von Betrag Einzahlung letzteaktion = "Einzahlung"; // Setzte die letzte Aktion auf Mutator Methode: Etwas vom Konto betrag der abzuhebende Berag void abheben(int betrag) kontostand -= betrag; // Bedeutet kontostand = kontostand - betrag letzterbetrag = betrag; // Setze letzter Betrag auf den Wert von Betrag 12

13 letzteaktion = "Abhebung"; Abhebung // Setzte die letzte Aktion auf Mutator Methode: Etwas empfänger das Konto des betrag der zu Überweisende Betrag void ueberweisen(konto empfänger, int betrag) abheben(betrag); empfänger.einzahlen(betrag); letzterbetrag = betrag; // Setze letzter Betrag auf den Wert von Betrag letzteaktion = " berweisung"; // Setzte die letzte Aktion auf Überweisung Methode, um die Variable letzteaktion auf Zinsgutschrift zu setzten. void zgutschrift() letzteaktion = "Zinsgutschrift"; // Setzte die letzte Aktion auf Zinsgutschrit //Ende der Klasse Konto Kommentare: Was passiert, wenn der Betrag, den man der Methoden einzahlen(), abheben(), ueberweisen() oder im Konstruktor übergeben wird, eine negative Zahl ist? b) Implementation: Konto.java Kontoverwaltung wie in Hausaufgabe 1 des 2. Übungsblattes definiert public class Konto Name des Inhabers private String inhaber; Aktueller Kontostand private int kontostand; Kontonummer des Kontos private int kontonummer; Nächste freie Kontonummer private static int naechstekontonummer = 1000; Legt ein neues Konto an. Kontostand wird auf 0 gesetzt und es wird automatisch eine freie Kontonummer name Der Name des Kontoinhabers 13

14 Konto(String name) inhaber = name; kontostand = 0; kontonummer = naechstekontonummer; naechstekontonummer += 1; Gibt den Namen des Kontoinhabers Name des Kontoinhabers String getinhaber() return inhaber; Gibt den Kontostand Kontostand int getkontostand() return kontostand; Gibt die Kontonummer Kontonummer int getkontonummer() return kontonummer; Gibt den Namen des Inhabers, die Kontonummer und den Kontostand auf der Konsole aus. void druckekontoauszug() System.out.println("\n Kontoinhaber: " + inhaber + "\n Kontonummer: " + kontonummer + "\n Kontostand: " + kontostand ); Schreibt einen eingezahlten Betrag auf dem Konto betrag Betrag, welcher gutgeschrieben wird void einzahlen(int betrag) kontostand += betrag; Verringert den Kontostand um einen ausgezahlten betrag ausgezahlter Betrag void abheben(int betrag) kontostand -= betrag; 14

15 Überweist einen Betrag auf ein anderes zielkonto Konto, auf welches überwiesen werden betrag Betrag, welcher überwiesen werden soll void ueberweisen(konto zielkonto, int betrag) abheben(betrag); zielkonto.einzahlen(betrag); c) import java.util.arraylist; import java.util.iterator; Die Klasse Konto und ihre Unterklassen beziehen sich auf die Hausaufgaben des 2. Übungsblattes. Zusätzlich zu den geforderten Möglichkeiten findet beim Kontoauszugdruck eine detailierte Auflistung aller Vorgänge statt. public class Konto // Felder Dies ist die aktuelle Kontonummer. Jedes Konto erhält automatisch die aktuelle Kontonummer zugeteilt. In den Konstruktoren wird nach der Kontenerstellung die aktuelle Nummer um 1 erhöht. Feld wird hier direkt mit der "Start-Kontonummer" initialisiert. private static int aktuellenummer = ; Hier wird der Kontoinhaber gespeichert. private String inhaber; Hier wird der Kontostand gespeichert. private int kontostand; Hier wird die Kontonummer gespeichert. private int kontonummer; In der ArrayList vorgaenge werden alle Vorgänge (Einzahlung, Auszahlung, Überweisung...) gespeichert. Die Methode druckekontoauszug() greift hierauf zu, um die Vorgänge auf dem Kontoauszug aufzulisten. private ArrayList vorgaenge; 15

16 // Konstruktoren Standard-Konstruktor Es wird ein Konto für einen "anonymen" Inhaber erstellt. Der Kontostand wird auf 0 gesetzt. Die Kontonummer wird automatisch vergeben und für das nächste Konto gleich inkrementiert. public Konto() inhaber = "A.Nonymous"; // Der Name für anonyme Konten wird auf "A.Nonymous" gesetzt. kontostand = 0; // Kontostand soll bei der Kontoeröffnung 0 betragen. kontonummer = aktuellenummer; // Dem Konto wird die aktuelle Kontonummer zugewiesen aktuellenummer++; // und diese für das nächste Konto um 1 erhöht. vorgaenge = new ArrayList(); des Kontos (für Kontoauszug) // Neue ArrayList für die Vorgänge Mit diesem Konstruktor ist es möglich, den Namen des Kontoinhabers anzugeben. Alle anderen Einstellungen werden vom Standard-Konstruktor name Name des Kontoinhabers (Typ: String) public Konto(String name) this(); // Aufruf des Standard-Konstruktors für die Standard-Einstellungen. inhaber = name; // Der "anonyme" Kontoinhaber aus dem Standard- Konstruktor wird mit dem beim Aufruf übergebenen Namen überschrieben. // Methoden Die Methode getinhaber() gibt den Kontoinhaber zurück. public String getinhaber() return inhaber; Die Methode getkontostand() gibt den Kontostand zurück. public int getkontostand() return kontostand; Mit der Methode einzahlen(int) kann Geld auf das Konto eingezahlt werden. 16

17 @param betrag Der Betrag, welcher eingezahlt werden soll (Typ: int) public void einzahlen(int betrag) kontostand += betrag; vorgaenge.add("- " + betrag + " H (Einzahlung)"); Einzahlung für den Kontoauszug // Hinweis auf Mit der Methode auszahlen(int) kann Geld vom Konto ausgezahlt betrag Der Betrag, welcher ausgezahlt werden soll (Typ: int) public void auszahlen(int betrag) kontostand -= betrag; vorgaenge.add("- " + betrag + " S (Auszahlung)"); Auszahlung für den Kontoauszug // Hinweis auf Mit der Methode ueberweisen(int,konto) kann Geld auf ein anderes Konto überwiesen werden. Hier werden die Methoden einzahlen(int) sowie auszahlen(int) verwendet. Für den Kontoauszug wird ein Hinweis auf Überweisung betrag Der Betrag, welcher überwiesen werden soll (Typ: empfaenger Das Empfänger-Konto, an welches das Geld überwiesen werden soll (Typ: Konto) public void ueberweisen(int betrag,konto empfaenger) vorgaenge.add("- Folgende Auszahlung bezieht sich auf Überweisung an " + empfaenger.getinhaber()); // Hinweis auf Überweisung für den Kontoauszug empfaenger.vorgaenge.add("- Folgene Einzahlung bezieht sich auf Überweisung von " + getinhaber()); // Hinweis auf Überweisung für den Kontoauszug des Empfängers auszahlen(betrag); empfaenger.einzahlen(betrag); Mit der Methode druckekontoauszug() kann ein Kontoauszug erstellt werden. Hierbei wird auf die ArrayList vorgaenge zugegriffen, in welcher alle Vorgänge gespeichert sind. public void druckekontoauszug() System.out.println("Kontoinhaber: " + inhaber + "\naktueller Kontostand: " + kontostand + "\nvorgänge:"); // Ausgabe der Kontenübersicht (Inhaber, Kontostand) for (Iterator i = vorgaenge.iterator(); i.hasnext();) // Ausgabe der einzelnen Vorgänge System.out.print(i.next() + "\n"); 17

18 System.out.print("\n"); // Freie Zeile zur besseren Übersicht bei mehreren Kontoauszügen 2.3 Entwürf e der Klassen GiroKonto und SparKonto a) 18

19 19

20 20

21 21

22 Kommentare zum Entwurf: Welche Methoden der Klasse Konto werden in den neuen Klassen benutzt und welche überschrieben? b) Aufgabe 2: Entwurf: Klasse GiroKonto (beerbt Konto ) Felder private int dispolimit; // speichert das Überziehungslimit Konstruktoren GiroKonto(String name); / analog zum Konstruktor von Konto. Standardüberziehungslimit:100 GiroKonto(String name, int neuesdispolimit); / ähnlich wie GiroKonto(String name), jedoch kann das Überziehungslimit mit Hilfe von neuesdispolimit gesetzt 22

23 werden. Methoden getter int getdispolimit(); void druckekontoauszug(); // gibt dispolimit zurück / super.kontoauszug(); und zusätzlich wird noch das Überziehungslimit ausgegeben. setter void setdispolimit(int neuesdispolimit); void abheben(int betrag); void ueberweisen(konto zielkonto, Klasse SparKonto (beerbt Konto ) Felder private static int zinssatz; Konstruktoren SparKonto(String name); int betrag); / setzt dispolimit auf ein neuesdispolimit / wie abheben(int) in Konto, jedoch wird überprüft ob kontostand noch hoch genug ist. dispolimit wird auch berücksichtigt. // wie ueberweisen(konto, int) in Konto, / jedoch werden wieder Limits berücksichtigt. // speichert den Zinssatz aller Sparkontos // analog zum Konstruktor von Konto Methoden getter static int getzinssatz(); void druckekontoauszug(); // gibt zinnsatz zurück / super.kontoauszug(); und zusätzlich wird noch der Zinssatz ausgegeben. setter static void setzinssatz(int neuerzinssatz); void weltspartag(); void abheben(int betrag); void ueberweisen(konto zielkonto, int betrag); // setzt zinssatz auf neuerzinssatz // schreibt Zinsen auf Konto gut / wie abheben(int) in Konto, jedoch kann nicht überzogen werden. // wie ueberweisen(konto,int) in Konto, 23

24 // jedoch kann nicht überzogen werden. 2.4Implementierungen der Klassen GiroKonto und Sparkonto a) Klasse: Girokonto Diese Klasse ist eine Unterklasse von Konto. Mit diese Klasse lassen sich Objekte erstellen, die als Girokonto fungieren //Beginn der Unterklasse Girokonto class GiroKonto extends Konto // // Objektfelder // In dieser Variable wird die Höhe des Kreditlimits abgespeichert private int kreditlimit; // // Konstruktor // Erstellt ein neues Girokonto. Bitte geben sie den Namen des Kontobesitzers und das Kreditlimit ein... (also wenn der Kunde sein Konto um bis zu Û Überziehen darf, dann geben sie (kein minus) name der Name des limit Die Kriditlinie des Kontos public GiroKonto(String name, int limit) super(name); kreditlimit = limit; // // Methoden // Observer Methode: Gibt die Kreditlinie aus int zeigekreditlinie() return kreditlimit; Mutator Methode: ändert die Kreditlinie Info: Wenn der Kunde sein Konto um bis zu Û 24

25 Überziehen darf, dann geben sie (kein minus) limit Die Kriditlinie des Kontos void ŠndereKreditline(int limit) kreditlimit = limit; Mutator Methode: Diese Methode hebt Geld vom Girokonto ab. Allerdings maximal nur noch den Betrag bis die Kreditlinie erreicht betrag der zu abzuhebende Betrag void abheben(int betrag) if ((zeigekontostand() - betrag) >= (-1kreditLimit)) // falls genug Geld vorhanden ist super.abheben(betrag); // hebe des gewünschten Betrag ab else // falls nicht genug vorhanden ist super.abheben((zeigekontostand() + kreditlimit)); // hebe das restliche Geld ab Mutator Methode: Diese Methode Überweist Geld vom Girokonto ab. Allerdings maximal nur noch den Betrag bis die Kreditlinie erreicht empfänger das Konto des betrag der zu Überweisende Betrag void ueberweisen(konto empfänger, int betrag) if ((zeigekontostand() - betrag) >= (-1kreditLimit)) // falls genug Geld vorhanden ist super.ueberweisen(empfänger, betrag); // Überweisen des gewünschten Betrag ab else // falls nicht genug vorhanden ist // Überweist das restliche Geld super.ueberweisen(empfänger, (zeigekontostand() + kreditlimit)); Methode zum erstellen (bzw. "druckten") eines Kontoauszug... void druckekontoauszug() super.druckekontoauszug(); // Ab hier kommt der spezielle Text für Girokonten... System.out.println(" Dies ist ein Girkonto." + "\n" + " Ihre Kreditlinie ist: " + kreditlimit + " Û"); System.out.println(" "); //Ende der Unterklasse GiroKonto Klasse: SparKonto 25

26 Diese Klasse ist eine Unterklasse von Konto. Mit dieser Klasse lassen sich Objekte erstellen, die als Sparkonten fungieren. //Beginn der Unterklasse SparKonto class SparKonto extends Konto // // Objektfelder // // -- keine weiteren benötigt... // // Klassenfelder // Der Zinssatz ist für alle Sparkonten gleich (=static)... private static int aktuellerzinssatz = 3; // // Konstruktor // Erstellt ein neues name der Name des Kontobesitzers public SparKonto(String name) super(name); // // Methoden // ändert den aktuellen satz der zukünftig zu verwendende Zinssatz void änderezinssatz(int satz) aktuellerzinssatz = satz; ändert den aktuellen Zinssatz int zeigezinssatz() return aktuellerzinssatz; Mutator Methode: Diese Methode hebt Geld vom Sparkonto ab. Allerdings maximal die Höhe die noch auf dem Konto ist (da man ein Sparkonto nicht Überziehen betrag der zu abzuhebende Betrag void abheben(int betrag) 26

27 if (zeigekontostand() >= betrag) genug Geld vorhanden ist super.abheben(betrag); gewÿnschten Betrag ab else nicht genug vorhanden ist super.abheben(zeigekontostand()); restliche Geld ab // falls // hebe des // falls // hebe das Mutator Methode: Diese Methode Überweist Geld vom Girokonto. Allerdings maximal nur noch den Betrag bis die Kreditlinie erreicht empfänger das Konto des betrag der zu Überweisende Betrag void ueberweisen(konto empfänger, int betrag) if (zeigekontostand() >= betrag) // falls genug Geld vorhanden ist super.ueberweisen(empfänger, betrag); // Überweisen des gewünschten Betrag ab else // falls nicht genug vorhanden ist // Überweist das restliche Geld super.ueberweisen(empfänger, zeigekontostand()); Mutator Methode: Diese Methode schreit dem Konto die angefallenen Zinsen gut. void weltspartag() super.einzahlen((zeigekontostand() (100 + aktuellerzinssatz) / 100)); super.zgutschrift(); Methode zum erstellen (bzw. "drucken") eines Kontoauszug... void druckekontoauszug() super.druckekontoauszug(); // Ab hier kommt der spezielle Text für Sparkonten... System.out.println(" Dies ist ein Sparkonto." + "\n" + " Der aktuelle Zinssatz beträgt: " + aktuellerzinssatz + "%"); System.out.println(" "); //Ende der Unterklasse SparKonto b) Implementation: GiroKonto.java Girokonto wie in Hausaufgabe 2 des 2. Übungsblattes definiert. 27

28 https://pi1.informatik.uni public class GiroKonto extends Konto speichert das Überziehungslimit private int dispolimit; Legt ein neues Girokonto an. Der Kontostand wird auf 0 gesetzt, das Überziehungs- limit wird auf 100 gesetzt und es wird eine freie Kontonummer name Der Name des Kontoinhabers GiroKonto(String name) this(name, 100); Legt ein neues Girokonto an. Der Kontostand wird auf 0 gesetzt und es wird eine freie Kontonummer name Der Name des neuesdispolimit Das Überziehungslimit für das angelegte Konto GiroKonto(String name, int neuesdispolimit) super(name); dispolimit = neuesdispolimit; Gibt das aktuelle Überziehungslimit Überziehungslimit int getdispolimit() return dispolimit; 28

29 Gibt einen Kontoauszug auf der Konsole aus. Enthält alle Informationen des Kontoauszuges der Klasse Konto und zusätzlich noch das Überziehungslimit. void druckekontoauszug() super.druckekontoauszug(); System.out.println("Überziehungslimit: " + dispolimit); Setzt das Überziehungslimit des Kontos auf ein neuen neuesdispolimit Neues Überziehungslimit des Kontos void setdispolimit(int neuesdispolimit) dispolimit = neuesdispolimit; Verringert den Kontostand um einen ausgezahlten Betrag. Dabei wird jedoch berücksichtig ob der Kontostand noch hoch genug ist um den entsprechenden Betrag betrag ausgezahlter Betrag void abheben(int betrag) if ((getkontostand()+dispolimit) < betrag) return; super.abheben(betrag); Überweist einen Betrag auf ein anderes Konto. Dabei wird jedoch berücksichtig ob der Kontostand noch hoch genug ist um den entsprechenden Betrag zu zielkonto Konto, auf welches überwiesen werden betrag Betrag, welcher überwiesen werden soll void ueberweisen(konto zielkonto, int betrag) if ((getkontostand()+dispolimit) < betrag) return; super.ueberweisen(zielkonto, betrag); 29

Kapitel 19: Klassen und Unterklassen

Kapitel 19: Klassen und Unterklassen Kapitel 19: Klassen und Unterklassen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Klassen und Unterklassen

Klassen und Unterklassen Klassen und Unterklassen Klassenfelder, Klassenmethoden, Unterklassen/Erweiterung, Benutzung, Vererbung, super, over-riding, Systemklassen, Pakete, Applets Klassenfelder Manche Felder müssen nicht in jedem

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Klassen und Unterklassen

Klassen und Unterklassen Klassen und Unterklassen Klassenfelder, Klassenmethoden, Applikationen,Unterklassen, Benutzung, Vererbung, super, over-riding, Systemklassen, Pakete, Applets Klassenfelder Manche Felder müssen nicht in

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Objekte und Klassen. Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc

Objekte und Klassen. Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc Objekte und Klassen Objekte, Klassen, Felder und Methoden, Ergebnistyp, Parameter, Signatur, Kommentare, Javadoc Algorithmen Algorithmen sind Handlungsanweisungen beispielsweise um ein Essen zu kochen

Mehr

Klassenattribute und -methoden, Vererbung

Klassenattribute und -methoden, Vererbung Klassenattribute und -methoden, Vererbung Michael Dienert 27. März 2002 1 Prüfungsaufgabe Anwendungsentwicklung Winter 2001 Die folgende Aufgabe stammt aus der Abschlussprüfung für Fachinformatiker Anwendungsentwicklung

Mehr

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur 20.02.2004 Name : Vorname : Matrikelnummer : Hauptfach : Nebenfach/Fachrichtung Hinweise : 1. Überprüfen

Mehr

Übung Programmierung WS 2007/08 - Blatt 5

Übung Programmierung WS 2007/08 - Blatt 5 RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 8. Arrays. Arrays 1 Kapitel 8 Ziele 2 Die Datenstruktur der kennenlernen Grundlegende Algorithmen auf in Java implementieren können Mit von Objekten arbeiten können 3 Erweiterungen zur Behandlung von : Überblick Bisher

Mehr

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Algorithmik II. Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt:

Algorithmik II. Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt: Aufgabe 5 a) In der Vorlesung im Wintersemester haben Sie folgende Klasse für ein Bankkonto kennengelernt: ( d e f i n e ( e r o e f f n e k o n t o g u t h a b e n ) ( d e f i n e ( abheben b e t r a

Mehr

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung. Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Universität Mannheim Fakultät für Mathematik und Informatik Dr. Heinz Kredel Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006 Name:.................................

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

Mehr

Kapitel 14. Systemarchitektur

Kapitel 14. Systemarchitektur 1 Kapitel 14 Ziele 2 Grundprinzipien der verstehen Schichtenarchitekturen kennenlernen Modelle und Programme mit Paketen strukturieren Eine Architektur für eine einfache Bankanwendung konstruieren Grundprinzipien

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Das Sparkonto. 2. Wenn du ein Sparkonto eröffnest, erhältst du als Nachweis ein.

Das Sparkonto. 2. Wenn du ein Sparkonto eröffnest, erhältst du als Nachweis ein. Das Sparkonto 1. Warum eröffnen Menschen Sparkonten? Weil sie Geld möchten. 2. Wenn du ein Sparkonto eröffnest, erhältst du als Nachweis ein. 3. Deine Ersparnisse sind auf einem Sparkonto sicherer als

Mehr

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Nachholklausur (9 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (9 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:30 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (9 ECTS) Einführung in die Informatik: Programmierung

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung Dipl.

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation zwischen

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

SS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

SS 2010. Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof. SS 2010 Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1 Übungsblatt 1 Übung - Probeklausur SS 2010 Typ Prof.Humm Aufgabe : Bank-Verwaltungs-System In dieser Klausur werden

Mehr

Download. Klassenarbeiten Mathematik 8. Zinsrechnung. Jens Conrad, Hardy Seifert. Downloadauszug aus dem Originaltitel:

Download. Klassenarbeiten Mathematik 8. Zinsrechnung. Jens Conrad, Hardy Seifert. Downloadauszug aus dem Originaltitel: Download Jens Conrad, Hardy Seifert Klassenarbeiten Mathematik 8 Downloadauszug aus dem Originaltitel: Klassenarbeiten Mathematik 8 Dieser Download ist ein Auszug aus dem Originaltitel Klassenarbeiten

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with

Mehr

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR Softwareentwicklung: Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

Mehr

17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14

17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14 17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14 Übungseinheit 2. - 6. Dezember 2013 Aufgabe 1 Es gibt zwei Roboter in einem durch Mauern abgeschlossenen Labyrinth unbekannter Größe. Der

Mehr

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik

Bachelor-Klausur im WiSe 2013 / 2014. Grundlagen der Informatik Fachhochschule Kaiserslautern FB Informatik und Mikrosystemtechnik Prof. Dr. M. Duque-Antón Bachelor-Klausur im WiSe 2013 / 2014 im Fach Grundlagen der Informatik Angewandte Informatik / Medieninformatik

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Software Entwicklung II (SS12)

Software Entwicklung II (SS12) Prof. Dr. P. Liggesmeyer Dipl.-Inf. K. Bizik M.Sc. K. Nehring TU Kaiserslautern Fachbereich Informatik AG Software Engineering: Dependability Software Entwicklung II (SS12) Übung 5 Ausgabe: 04.06.2012

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Formaler Entwurf mit Event-B Die Eventbank

Formaler Entwurf mit Event-B Die Eventbank Institut für Theoretische Informatik Anwendungsorientierte Formale Verifikation Vorlesung Anwendung Formaler Verifikation SS 2015, 9.6.15 Dr. V. Klebanov, Dr. M. Ulbrich Formaler Entwurf mit Event-B Die

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Tutorium 5 - Programmieren

Tutorium 5 - Programmieren Tutorium 5 - Programmieren Grischa Liebel Uni Karlsruhe (TH) Tutorium 11 1 Einleitung 2 Abschlussaufgaben 3 Vorlesungsstoff 4 Ergänzungen zum Vorlesungsstoff Grischa Liebel (Uni Karlsruhe (TH)) c 2008

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte

Mehr

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 25. Mai 2009 1/10 Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse Prof. G. Kemnitz Institut

Mehr