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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

// 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

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

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

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

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

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

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

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

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

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

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

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

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

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero

Exceptions. Prof. Dr. Margarita Esponda SS 2012. M. Esponda-Argüero Exceptions Prof. Dr. Margarita Esponda SS 2012 1 Ausnahmen Eine Ausnahme (Exception) ist ein Fehler oder ein nicht geplantes Ereignis, das während der Ausführung eines Programms vorkommt und dessen normalen

Mehr

Einführung in die Programmiersprache JAVA

Einführung in die Programmiersprache JAVA Einführung in die Programmiersprache JAVA unter Verwendung der Entwicklungsumgebung BlueJ Text von K.Spier (2004), überarbeitet von B.Spier (2009-2014) JAVA-Einführung, Seite 2 Inhaltsverzeichnis Kapitel

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

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

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Objektorientierung Grundbegriffe

Objektorientierung Grundbegriffe Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden

Teil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Teil 9: Vererbung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 9 Vererbung... 3 9.1 Motivation... 3 9.2 Deklaration und Zugriffsrechte...

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen implementieren am Beispiel Suchbaum Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden

Mehr

Objektorientierte Systementwicklung: Vererbung

Objektorientierte Systementwicklung: Vererbung Objektorientierte Systementwicklung: Vererbung Inhaltsverzeichnis: 1 Ausgangssituation 1 2 Generalisierung - Spezialisierung 2 3 Umsetzung der Vererbung mit Java 4 3.1 Quellcode in untergeordneten Klassen

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Grundkonzepte objektorientierter Programmierung -

Grundkonzepte objektorientierter Programmierung - Grundkonzepte objektorientierter Programmierung - Beispiele in Java, Oberon-2, Python und Delphi Projektarbeit im Studiengang Lehramt Informatik Sommersemester 2006 Friedrich-Schiller-Universität Jena

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Selbststudium OOP4 Auftrag

Selbststudium OOP4 Auftrag Selbststudium OOP4 Auftrag Kapitel 3.6 1. Wie deklarieren Sie eine Referenzvariable? Mit new z.b. Student studenta = new Stundent( Meier ); 2. Zeichnen Sie das Objektdiagramm zum BlueJ Picture Projekt

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Sparkonto. Sparen und Anlegen

Sparkonto. Sparen und Anlegen Sparkonto Sparen und Anlegen Sparen ist enorm wichtig Man spart für einen bestimmten Zweck oder um stets über eine Reserve zu verfügen oder... Es gibt genug Gründe, um zu sparen. Es versteht sich von selbst,

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Fallstudie: Game of Life

Fallstudie: Game of Life Fallstudie: Game of Life Erfunden 1970 von John Horton Conway. Spielplan: unendliches 2D-Gitter (für uns: = 100 100 o.ä.) Eine Zelle ist entweder lebendig oder tot. Zu Beginn sind manche Zellen lebendig

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Klausur vom 14. Juni 2004. Informatik 4

Klausur vom 14. Juni 2004. Informatik 4 Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik, Burgdorf Klasse: EV02-1 Name, Vorname: Klausur vom 14. Juni

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung Grundlagen der Programmierung Prof. H. Mössenböck 11. Objektorientierung Klasse = Daten + Methoden Beispiel: Positionsklasse class Position { private int x; private int y; void goleft() { x = x - 1; void

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung C++ - Einführung in die Programmiersprache Objektorientierte Programmierung hat Kanten hat eine Farbe hat eine Kantenfarbe Rechteck zeichnen Rechteck einfärben Rechteck drehen Modulare Programmierung Projekt

Mehr

1.1 Einfache Theorie der Objektorientierten Programmierung

1.1 Einfache Theorie der Objektorientierten Programmierung - EINFÜHRUNG IN DIE OOP MIT JAVA PI - KAPITEL 1: ARBEITSBLATT ERSTE SCHRITTE - V. 24.08.06 - SEITE 1 VON 13-1.1 Einfache Theorie der Objektorientierten Programmierung 5 10 15 20 25 30 35 Zunächst klären

Mehr

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean Inhalt 9 Klassen... 9-2 9.1 Instanzvariablen und Instanzmethoden... 9-2 9.1.1 Vereinbarung... 9-2 9.1.2 this - Selbstreferenz... 9-5 9.1.3 tostring()... 9-5 9.2 Klassenvariablen und Klassenmethoden...

Mehr

Analyse und Entwurf objektorientierter Systeme

Analyse und Entwurf objektorientierter Systeme Analyse und Entwurf objektorientierter Systeme Teil 3 Modellbildung in der Analysephase 3.1 Statische und dynamische Notationselemente Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik

Mehr

Einführung in die Programmierung für NF

Einführung in die Programmierung für NF Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Übungsblatt 2. Abgabe: Freitag, 7. November 2014, 18:00 Uhr

Übungsblatt 2. Abgabe: Freitag, 7. November 2014, 18:00 Uhr Informatik I: Einführung in die Programmierung Prof. Dr. Bernhard Nebel Dr. Christian Becker-Asano, Dr. Stefan Wölfl Wintersemester 2014/2015 Universität Freiburg Institut für Informatik Übungsblatt 2

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

Mehr

Die Zinsrechnung ist eine Anwendung der Prozentrechnung mit speziellen Begriffen. Frau Mayer erhält nach einem Jahr 8,40 Zinsen.

Die Zinsrechnung ist eine Anwendung der Prozentrechnung mit speziellen Begriffen. Frau Mayer erhält nach einem Jahr 8,40 Zinsen. Zinsen berechnen Die Zinsrechnung ist eine Anwendung der Prozentrechnung mit speziellen Begriffen. Grundwert G Kapital K Prozentwert P Zinsen Z Prozentsatz p Zinssatz p Frau Mayer hat ein Guthaben von

Mehr

Programmierprojekt Aufgabe 1

Programmierprojekt Aufgabe 1 v01 10.05.2009 Die Formalitäten vorab (WICHTIG!!!): Technische Universität Darmstadt Fachbereich Informatik Prof. Dr. Johannes Fürnkranz Allgemeine Informatik 2 im SS 2009 Programmierprojekt Aufgabe 1

Mehr