Analyse der Klasse Konto

Ähnliche Dokumente
3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java)

7. Objektorientierung. Informatik II für Verkehrsingenieure

Einführung in die Programmierung mit BlueJ

Kapitel 3 Das Projekt Bankkonto Seite 1

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Implementieren von Klassen

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Arrays von Objekten. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Objektorientierung. Marc Satkowski 20. November C# Kurs

5.5.8 Öffentliche und private Eigenschaften

Java Übung. Übung Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Vorkurs Informatik WiSe 15/16

Grundelemente objektorientierter Sprachen (1)

Arrays Fortgeschrittene Verwendung

7. Übung Informatik II - Objektorientierte Programmierung

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Einstieg in die Informatik mit Java

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

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Informatik 1 MaVt FS Übung 10

Lernteam OOP2 SW Programmieren 1 - H1103 Felix Rohrer

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Fakultät IV Elektrotechnik/Informatik

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

Programmieren I. Dr. Klaus Höppner. Hochschule Darmstadt Wintersemester 2009/ / 22

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Tag 8 Repetitorium Informatik (Java)

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

Grundlagen der Objektorientierten Programmierung - Methoden -

C++ - Objektorientierte Programmierung Polymorphie

Beispielprüfung CuP WS 2015/2016

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

Umsetzung einer Klassenkarte in einer Programmiersprache

Computeranwendung und Programmierung (CuP)

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

Wir wollen in einer Bank die Konten der Kunden modellieren (um sie dann entspr. zu verarbeiten

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Teil 2: Weitere Aspekte der Objektorientierung

5.4 Klassen und Objekte

Klassen als Datenstrukturen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Javakurs für Anfänger

Abschnitt 6: Klassen, Objekte und Methoden in Java

Praktische Informatik 1

Javakurs für Anfänger

Methoden und Wrapperklassen

Kapitel 06. Klassen und Objekte. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Grundlagen Programmierung

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Folienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4

Abschnitt 10: Klassen, Objekte und Methoden in Java

Javakurs für Anfänger

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

System.out.println("TEXT");

Prof. W. Henrich Seite 1

Allgemeines - Prinzipien

Javakurs für Anfänger

C++ Teil 10. Sven Groß. 17. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Dez / 14

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Klausur Programmieren 2 WS 2017/18

Objektorientierte Programmierung Studiengang Medieninformatik

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

1 Klassen und Objekte

Erste Java-Programme (Java Wiederholung & Vererbung)

Statische und Nichtstatische Methoden Properties/ Eigenschaften

Überschreiben von Methoden

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

hue13 January 30, 2017

Propädeutikum Programmierung in der Bioinformatik

Grundlagen. Übungen. Klassen, Attribute, Assoziationen, Methoden. Grundlagen_Klassen_Attribute_Assoziationen_Methoden.odt. Christine Janischek

Vorlesung im Herbstwintersemester Autorisierte studentisch Lösungen zu Aufgabenblatt 2

Objektorientierte Programmierung

Einstieg in die Informatik mit Java

Tutorial zu Einführung in die Informatik für LogWi- Ings und WiMas Wintersemester 2015/16. 1 Zauberer und Zwerge, Aufgabenteil 1

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

Kapitel 13. Definition von Klassen. OOP Thomas Klinker 1

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 12

Grundlagen der Objektorientierten Programmierung Static

Klausur Programmieren 2 SS 2016

Programmieren für Wirtschaftswissenschaftler SS 2015

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

Computeranwendung und Programmierung (CuP)

Objektorientierung (OO)

1 Klassen anlegen und Objekte erzeugen

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

1 Klassen anlegen und Objekte erzeugen

5 Projekt Bankverwaltung

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

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

Transkript:

Klasse Konto erzeugt Objekte vom Typ Konto mit gleichen Eigenschaften mit gleichen Fähigkeiten Welche Eigenschaften hat ein Konto? Attribute Datenfelder - Konto hat eine Nummer - Konto hat Inhaber - Konto hat Kontostand - Konto benötigt PIN - Konto hat einen Dispokredit - Was kann ein Konto? Fähigkeiten Methoden - PIN prüfen - Aktuellen Kontostand liefern - Geldbetrag einzahlen - Geldbetrag abheben - Geldbetrag auf anderes Konto überweisen - 2

Welche Eigenschaften hat ein Konto? Attribute Datenfelder - int kontonr - String inhaber - int kontostand - int pin - int dispo - Datentypen Was kann ein Konto? Fähigkeiten Methoden - pruefepin() - gibkontostand() - einzahlen() - abheben() - ueberweisen() - Ein neues Konto anlegen Ein Konstruktor ist eine Methode der Klasse. Sie hat keinen Rückgabetyp, da ihr Ergebnis immer ein neues Objekt (Instanz) der Klasse ist. 1. Konstruktor ohne Parameterliste nur ein ganz bestimmtes Konto möglich public Konto () {knr=1234; inhaber = ; } 3

Ein neues Konto anlegen Ein Konstruktor setzt das Objekt in einen gültigen Anfangszustand- er initialisiert ein Objekt. 2. Konstruktor mit Parameterliste Attributwerte werden jedem Konto individuell zugewiesen public Konto(int knr, int name, ) {knr=knr; inhaber=name; } Methoden beschreiben die Fähigkeiten Verändernde Methode: ändert Zustand des Objekts public void einzahlen(int betrag) { Kontostand=kontostand+betrag; } Rückgabetyp leer Sondierende Methode: liest Attributwerte aus public int gibkontostand() { return kontostand; } Rückgabetyp des Datenfeldes 4

Methoden des Kontos Sondierende Methoden: - gibkontostand () - gibkontonr () - gibinhaber () - pruefepin (int pin) public rückgabetyp int String String boolean Methoden des Kontos Verändernde Methoden: public void -sperrekonto() -einzahlen() -abheben() -ueberweisen() -druckeauszug() 5

UML Konto Klassenname +kontonr :String +inhaber :String Datenfelder mit - kontostand :int (oder double) Sichtbarkeit - dispo :int (oder double) - pin :int - pintest :boolean - versuche :int + pruefepin(int pineingabe) :boolean + sperrekonto() :void + einzahlen(int betrag) :void + abheben(int betrag, int pin) Methoden :void + ueberweisen(int betrag, int pin, Konto empfaenger) :void + druckeauszug(int pin) :void Bedingungen in den Methoden 1. Alle Vorgänge - außer einzahlen() - werden nur nach erfolgreicher PIN-Prüfung ausgeführt. 2. Wird die PIN 3 - mal hintereinander falsch eingegeben, wird das Konto gesperrt und die PIN auf 0 gesetzt. 3. Es können nur positive Beträge abgehoben, eingezahlt und überwiesen werden. 4. Es können nur Beträge bis max. 1500 abgehoben werden. 5. Überweisen und abheben erfolgt nur bis zur Höhe des Dispokredits.(Überziehungsrahmen des Kontos) 6

Interne und externe Methoden Warum werden sie verwendet? zur besseren Strukturierung des Quelltextes (Modularisierung) zum Vermeiden von sich wiederholenden Quelltextstellen um Zugriff auf Methoden und Daten von Instanzen der eigenen Klasse oder anderer Klassen zu haben z.b. die wiederholte Pinprüfung vereinfachen, Überweisung zwischen zwei Instanzen Interne und externe Methoden Methoden können andere Methoden der eigenen Klasse als Teil ihrer Implementierung aufrufen. Dies wird als interner Methodenaufruf bezeichnet. Methoden von Objekten anderer Klassen mit Hilfe des Punkt- Operators aufrufen. Dies wird als externer Methodenaufruf bezeichnet. Voraussetzung ist, dass ein Objekt der Methodenklasse existiert. pruefepin (pin); allgemeine Syntax: methode(parameterliste ); empfaenger.einzahlen (betrag); allgemeine Syntax: objekt.methode(parameterliste ); 7

Externe Methode Kommunikation zwischen zwei Objekten Die Überweisung Externe Methode Kommunikation zwischen zwei Objekten Es werden die Methoden abheben() intern und einzahlen() extern benutzt. Der Zugriff auf das Konto-Objekt empfaenger erfolgt mit einer externen Methode Punktnotation: empfaenger.einzahlen() public void ueberweisen (Konto empfaenger, int betrag, int pin) { abheben(betrag); empfaenger.einzahlen(betrag); } 8

public class Konto { public Konto() { } Interne & externe Methodenaufrufe public boolean pruefepin( ) { } public void sperrekonto() { } public void einzahlen() { } public void abheben() { pruefepin(pin) ; sperrekonto(); } public void ueberweisen() { pruefepin(pin) ; sperrekonto(); abheben(); empfaenger.einzahlen(); } public void druckeauszug() { pruefepin(pin); sperrekonto ; } } wenn: ja wenn: ja Eingabe: pin, betrag, Übergabe: anzahlversuche pruefepin() nein versuche<3 pin stimmt und betrag>0 und betrag<1501 und kontostand+dispo>=betrag kontostand=kontostand-betrag Ausgabe neuer Kontostand die Methode abheben() Ausgabe Vorgang nicht möglich nein pin= 0; Ausgabe: Konto gesperrt 9

Codierung der Klasse Konto public void abheben (int betrag, pin) { pruefepin(pin); --> interne Methode pruefepin() if (versuche<3){ if ( pintest==true && betrag>0 && betrag<1501 ) && kontostand+dispo>=betrag { kontostand=kontostand-betrag; System.out.println("neuer Kontostand nach dem } Abheben: "+kontostand+ " Euro"); else { System.out.println("Vorgang nicht möglich!"); } } else { sperrekonto();} Modellierung der Klasse Konto die Methode druckeauszug() 10

Testen der Klasse Konto Test-Szenarien PIN 3 x falsch PIN 2 x falsch, dann richtig Abhebebetrag<0 Abhebebetrag>1500 Sperre? Versuche zurücksetzen? Meldung? Meldung? Abhebebetrag>Guthaben+Dispo? Meldung? Überweisung Methoden Kontostand ändert sich bei beiden? normale Funktion? Aufgaben a) Erstellen Sie das UML der Klasse Konto. b) Erstellen Sie das Struktogramm für die Methode abheben(). c) Implementieren Sie die Datenfelder. d) Implementieren Sie einen Konstruktor mit Eingabe durch Parameter und einen mit den vorgegebenen Werten. e) Implementieren Sie die Methoden gibkontostand(), pruefepin(), sperrekonto(), abheben(), einzahlen() und druckeauszug(). f) Implementieren Sie die Methode ueberweisen() mit PIN- Prüfung! g) Erzeugen Sie mindestens 2 Instanzen der Klasse und testen Sie das Programm unter verschiedenen Szenarien! 11