Implementierung objektorientierter Modelle Klaus Becker 2009.
-
Upload
kaspar-eckert -
Category
Documents
-
view
107 -
download
0
Transcript of Implementierung objektorientierter Modelle Klaus Becker 2009.
![Page 1: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/1.jpg)
Implementierung objektorientierter Modelle
Klaus Becker
2009
![Page 2: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/2.jpg)
2 mit Python, Delphi, Java
![Page 3: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/3.jpg)
3 Teil 1
Python - Würfel
![Page 4: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/4.jpg)
4 Beispiel 1: Würfel
Ziel ist es, ein einfaches System zur Simulation eines Würfels zu entwickeln.
![Page 5: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/5.jpg)
5 Datenmodell
Das Datenmodell ist hier sehr einfach und besteht nur aus einem Objekt einer Klasse Wuerfel.
Klasse
Objekt
Datenmodell
Miniwelt
![Page 6: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/6.jpg)
6
Implementierung des Datenmodells
from random import randint
class Wuerfel(object): def __init__(self): self.augen = 1
def werfen(self): self.augen = randint(1, 6)
def getAugen(self): return self.augen
Attribut
Konstruktor
Methode
Methode
wuerfel.py
![Page 7: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/7.jpg)
7 Test des Datenmodells
# Datenmodellfrom wuerfel import *wuerfel = Wuerfel()
# Testfor i in range(10): wuerfel.werfen() print(wuerfel.getAugen())
Objekte in Aktion
Erzeugung der Objekte
test_wuerfel.py
Datenmodell
![Page 8: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/8.jpg)
8
Benutzeroberfläche zum Datenmodell
from tkinter import *
class GUIWuerfel(object): def __init__(self, wuerfel): # Referenzattribute zum Datenmodell self.wuerfel = wuerfel # Erzeugung des Fensters self.fenster = Tk() self.fenster.title("Würfel") self.fenster.geometry('120x110') # Anzeige des Würfels self.labelWuerfel = Label(master=self.fenster, text="1", background="#FBD975") self.labelWuerfel.place(x=45, y=40, width=30, height=30) # Button zum Auswerten self.buttonWuerfel = Button(master=self.fenster, text="Würfel werfen", \ command=self.Button_Wuerfel_Click) self.buttonWuerfel.place(x=10, y=80, width=100, height=20)
def Button_Wuerfel_Click(self): # Verarbeitung der Daten self.wuerfel.werfen() # Anzeige der Daten self.labelWuerfel.config(text=str(self.wuerfel.getAugen()))
Ereignisverarbeitung
GUI-Objekte
guiwuerfel.py
Datenmodell-Objekte
![Page 9: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/9.jpg)
9
Benutzeroberfläche zum Datenmodell
# Datenmodellfrom wuerfel import *wuerfel = Wuerfel()
# GUIfrom guiwuerfel import *guiwuerfel = GUIWuerfel(wuerfel)guiwuerfel.fenster.mainloop()
GUI-Verwaltungsobjekt
test_guiwuerfel.py
Datenmodell-Objekte
![Page 10: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/10.jpg)
10 Teil 2
Delphi - Würfel
![Page 11: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/11.jpg)
11 Beispiel 1: Würfel
Ziel ist es, ein einfaches System zur Simulation eines Würfels zu entwickeln.
![Page 12: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/12.jpg)
12 Datenmodell
Das Datenmodell ist hier sehr einfach und besteht nur aus einem Objekt einer Klasse Wuerfel.
Klasse
Objekt
Datenmodell
Miniwelt
![Page 13: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/13.jpg)
13
Implementierung des Datenmodells
Vorbereitung:
Neuer Ordner (z.B. "WuerfelOhneGUI")
Datei -> Neu -> Unit
Unit im neuen Ordner abspeichern (z.B. "uWuerfel.pas")
![Page 14: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/14.jpg)
14
Implementierung des Datenmodells
unit uWuerfel;
interface
type TWuerfel = class private augen: integer; public constructor create; procedure werfen; function getAugen: integer; end;...
Deklaration der Attribute
und Methoden
uWuerfel.pas
...
implementation
constructor TWuerfel.create;begin augen := 1; randomize;end;
procedure TWuerfel.werfen;begin augen := random(6)+1;end;
function TWuerfel.getAugen: integer;begin result := augen;end;
Klassen werden als Module (Programmeinheiten) implementiert, die in Delphi in zwei Teilen beschrieben werden:
Schnittstellenvereinbarung: Deklaration der Attribute und Methoden
Implementierungsteil: Implementierung der Methoden
Implementierung der Attribute und Methoden
![Page 15: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/15.jpg)
15 Test des Datenmodells
Vorbereitung:
Datei -> Neu -> Konsolen-Anwendung
Projekt im bereits bestehenden ("WuerfelOhneGUI") abspeichern (z.B. "ProjectWuerfel.dpr")
Projekt -> Dem Projekt hinzufügen -> "uWuerfel.pas"
![Page 16: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/16.jpg)
16 Test des Datenmodells
program ProjectWuerfel;{$APPTYPE CONSOLE}uses sysutils, uWuerfel in 'uWuerfel.pas';var wuerfel: Twuerfel; i: integer;begin // Datenmodell wuerfel := TWuerfel.create; // Test for i := 0 to 9 do begin wuerfel.werfen; writeln(wuerfel.getAugen); end; readln;end.
Objekte in Aktion
Erzeugung der Objekte
ProjectWuerfel.dpr
Datenmodell
![Page 17: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/17.jpg)
17
Benutzeroberfläche zum Datenmodell
Vorbereitung:
Neuer Ordner (z.B. "WuerfelMitGUI")
Datei -> Neu -> Anwendung
Projekt im neuen Ordner ("WuerfelMitGUI") abspeichern (z.B. "ProjectWuerfel.dpr")
Unit "Unit1.pas" umbenennen (z.B. "uGUI.pas")
Projekt -> Dem Projekt hinzufügen -> "uWuerfel.pas"
![Page 18: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/18.jpg)
18
Benutzeroberfläche zum Datenmodell
unit uGUI;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, uWuerfel;
type TFGUIWuerfel = class(TForm) labelWuerfel: TLabel; buttonWuerfel: TButton; procedure buttonWuerfelClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } wuerfel: TWuerfel; public { Public-Deklarationen } end;
var FGUIWuerfel: TFGUIWuerfel; ...
Deklaration des Referenzattributs
uGUI.pas
Einbindung der Datenmodell-Unit
![Page 19: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/19.jpg)
19
Benutzeroberfläche zum Datenmodell
...
implementation
{$R *.DFM}
procedure TFGUIWuerfel.buttonWuerfelClick(Sender: TObject);begin wuerfel.werfen; labelWuerfel.Caption := IntToStr(wuerfel.getAugen);end;
procedure TFGUIWuerfel.FormCreate(Sender: TObject);begin wuerfel := TWuerfel.create;end;
end.
Erzeugung der Datenmodell-Objekte
uGUI.pas
Implementierung der Ereignisverarbeitung
![Page 20: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/20.jpg)
20
Benutzeroberfläche zum Datenmodell
...
type TFGUIWuerfel = class(TForm) labelWuerfel: TLabel; buttonWuerfel: TButton; procedure buttonWuerfelClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } wuerfel: TWuerfel; public { Public-Deklarationen } end;
...
procedure TFGUIWuerfel.FormCreate(Sender: TObject);begin wuerfel := TWuerfel.create;end;
...
uGUI.pas
![Page 21: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/21.jpg)
21 Teil 3
Java - Würfel
![Page 22: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/22.jpg)
22 Beispiel 1: Würfel
Ziel ist es, ein einfaches System zur Simulation eines Würfels zu entwickeln.
![Page 23: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/23.jpg)
23 Datenmodell
Das Datenmodell ist hier sehr einfach und besteht nur aus einem Objekt einer Klasse Wuerfel.
Klasse
Objekt
Datenmodell
Miniwelt
![Page 24: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/24.jpg)
24
Implementierung des Datenmodells
Vorbereitung:
Neuer Ordner (z.B. "WuerfelOhneGUI")
Datei -> Neu -> Java
Datei im neuen Ordner abspeichern: "Wuerfel.java"
![Page 25: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/25.jpg)
25
Implementierung des Datenmodells
public class Wuerfel{ // Anfang Attribute private int augen; // Ende Attribute
public Wuerfel() { }
// Anfang Methoden
public void werfen() { augen = (int)(Math.random() * 6 + 1); } public int getAugen() { return augen; } // Ende Methoden}
Konstruktor
Wuerfel.java
Beachte: Der Dateiname (hier: „Wuerfel.java“) muss mit dem Klassennamen (hier: „Wuerfel“) übereinstimmen.
Beachte:In einer Datei kann daher auch nur eine Klasse implementiert werden.
Attribute
Methoden
![Page 26: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/26.jpg)
26 Test des Datenmodells
Vorbereitung:
Datei -> Neu -> Console
Datei im bereits bestehenden ("WuerfelOhneGUI") abspeichern (z.B. "TestWuerfel.java")
![Page 27: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/27.jpg)
27 Test des Datenmodells
public class TestWuerfel {
// Anfang Attribute // Ende Attribute
// Anfang Methoden public static void main(String[] args) { // Datenmodell Wuerfel wuerfel = new Wuerfel(); // Test for (int i = 0; i < 10; i = i + 1) { wuerfel.werfen(); System.out.println(wuerfel.getAugen()); }; } // Ende Methoden}
Objekte in Aktion
Erzeugung
der Objekte
TestWuerfel.java
Datenmodell
![Page 28: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/28.jpg)
28
Benutzeroberfläche zum Datenmodell
Vorbereitung:
Neuer Ordner (z.B. "WuerfelMitGUI")
Datei -> Neu -> Frame
Datei im neuen Ordner ("WuerfelMitGUI") abspeichern (z.B. „GUI.java")
![Page 29: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/29.jpg)
29
Benutzeroberfläche zum Datenmodell
import java.awt.*;import java.awt.event.*;
public class GUI extends Frame { // Anfang Attribute private Label labelWuerfel = new Label(); private Button buttonWuerfel = new Button(); private Wuerfel wuerfel = new Wuerfel(); // Ende Attribute
public GUI(String title) { // Frame-Initialisierung super(title); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); int frameWidth = 186; int frameHeight = 198; setSize(frameWidth, frameHeight); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int x = (d.width - getSize().width) / 2; int y = (d.height - getSize().height) / 2; …
Konfiguration der GUI-Objekte
GUI.java
Erzeugung der Datenmodell-
Objekte
Erzeugung der GUI-Objekte
![Page 30: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/30.jpg)
30
Benutzeroberfläche zum Datenmodell
…
// Anfang Methoden
public void buttonWuerfel_ActionPerformed(ActionEvent evt) { // Verarbeitung der Daten wuerfel.werfen(); // Anzeige der Daten labelWuerfel.setText(Integer.toString(wuerfel.getAugen())); }
// Ende Methoden
public static void main(String[] args) { new GUI("GUI");
}}
Erzeugung des GUI-
Verwaltungsobjekts
GUI.java
Datenmodell-Objekt in Aktion
![Page 31: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/31.jpg)
31
Benutzeroberfläche zum Datenmodell
...
public class GUI extends Frame { // Anfang Attribute private Label labelWuerfel = new Label(); private Button buttonWuerfel = new Button(); private Wuerfel wuerfel = new Wuerfel(); // Ende Attribute
...
public static void main(String[] args) { new GUI("GUI");
...
GUI.java
![Page 32: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/32.jpg)
32 Teil 4
Python - chuck a luck
![Page 33: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/33.jpg)
33 Beispiel 2: chuck a luck
Ziel ist es, ein System zur Simulation des Spiels "chuck a luck" zu entwickeln.
![Page 34: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/34.jpg)
34 Datenmodell
Das Datenmodell ist komplexer und besteht aus Objekten, die in Beziehung stehen.
Miniwelt
1$ 1$ 1$ 1$1$ 1$ 1$1$ 1$
1
2
3
4
5
631$31$
Einsatz zahlen
Spielzahl setzen
Würfel werfen
Gewinn auszahlen
Datenmodell
![Page 35: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/35.jpg)
35
Implementierung des Datenmodells
from random import randint
class Konto(object): def __init__(self, betrag): self.stand = betrag
def einzahlen(self, betrag): self.stand = self.stand + betrag
def abheben(self, betrag): self.stand = self.stand - betrag
...
class Spiel(object): def __init__(self): self.konto = Konto(100) self.spielzahl = Spielzahl() self.wuerfelA = Wuerfel() self.wuerfelB = Wuerfel() self.wuerfelC = Wuerfel()
...
model_chuckaluck.py
![Page 36: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/36.jpg)
36 Test des Datenmodells
#-----------------------------------------------------------# Datenmodell#-----------------------------------------------------------
from model_chuckaluck import *spiel = Spiel()
#-----------------------------------------------------------# Test#-----------------------------------------------------------
# Durchführung eines Spielsspiel.einsatzZahlen()spiel.spielzahlSetzen(5)spiel.wuerfelWerfen()spiel.gewinnAuszahlen()# Ausgabe der Spielprint("Würfel A:", spiel.wuerfelA.augen)print("Würfel B:", spiel.wuerfelB.augen)print("Würfel C:", spiel.wuerfelC.augen)print("Konto:", spiel.konto.stand)
Objekte in Aktion
Erzeugung der Datenmodell-
Objekte
test_model_chuckaluck.py
Datenmodell
![Page 37: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/37.jpg)
37
Benutzeroberfläche zum Datenmodell
from tkinter import *
class GUIChuckALuck(object): def __init__(self, spiel): # Referenzattribute zum Datenmodell self.spiel = spiel # Erzeugung des Fensters self.tkFenster = Tk() self.tkFenster.title("chuck a luck") self.tkFenster.geometry('350x145') # Rahmen Überschrift ...
def Button_Einsatz_Click(self): # Verarbeitung der Daten self.spiel.einsatzZahlen() # Anzeige der Daten self.labelKonto.config(text=str(self.spiel.konto.stand))
...
Ereignisverarbeitung
GUI-Objekte
gui_chuckaluck.py
Datenmodell-Objekte
![Page 38: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/38.jpg)
38
Benutzeroberfläche zum Datenmodell
#-----------------------------------------------------------# Datenmodell#-----------------------------------------------------------
from model_chuckaluck import *spiel = Spiel()
#-----------------------------------------------------------# GUI-Objekt#-----------------------------------------------------------
from gui_chuckaluck import *guichuckaluck = GUIChuckALuck(spiel)guichuckaluck.tkFenster.mainloop()
test_gui_chuckaluck.py
![Page 39: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/39.jpg)
39 Teil 5
Delphi - chuck a luck
![Page 40: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/40.jpg)
40 Beispiel 2: chuck a luck
Ziel ist es, ein einfaches System zur Simulation eines Würfels zu entwickeln.
![Page 41: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/41.jpg)
41 Datenmodell
Das Datenmodell ist komplexer und besteht aus Objekten, die in Beziehung stehen.
Miniwelt
1$ 1$ 1$ 1$1$ 1$ 1$1$ 1$
1
2
3
4
5
631$31$
Einsatz zahlen
Spielzahl setzen
Würfel werfen
Gewinn auszahlen
Datenmodell
![Page 42: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/42.jpg)
42
Implementierung des Datenmodells
unit uKonto;
interface
type TKonto = class private stand: integer; public constructor create(betrag: integer); procedure einzahlen(betrag: integer); procedure abheben(betrag: integer); function getStand: integer; end;
implementation
constructor TKonto.create(betrag: integer);beginstand := betrag;end;
...
Deklaration der Attribute
und Methoden
uKonto.pas
...
procedure TKonto.einzahlen(betrag: integer);beginstand := stand + betrag;end;
procedure TKonto.abheben(betrag: integer);beginstand := stand - betrag;end;
function TKonto.getStand: integer;beginresult := stand;end;
end.
Implementierung der Attribute und Methoden
![Page 43: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/43.jpg)
43
Implementierung des Datenmodells
unit uSpiel;
interface
uses uWuerfel, uKonto, uSpielzahl;
type TSpiel = class private public spielzahl: TSpielzahl; konto: TKonto; wuerfelA: TWuerfel; wuerfelB: TWuerfel; wuerfelC: TWuerfel; constructor create(); procedure einsatzZahlen; procedure spielzahlSetzen(zahl: integer); procedure wuerfelWerfen; procedure gewinnAuszahlen; end;
...
Deklaration der Attribute
und Methoden
uSpiel.pas
...
implementation
constructor TSpiel.create();begin konto := TKonto.create(100); wuerfelA := TWuerfel.create; wuerfelB := TWuerfel.create; wuerfelC := TWuerfel.create; spielzahl := TSpielzahl.create;end;
procedure TSpiel.einsatzZahlen();begin konto.abheben(1);end;
...
Implementierung der Attribute und Methoden
![Page 44: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/44.jpg)
44 Test des Datenmodells
program ProjectChuckALuck;{$APPTYPE CONSOLE}uses sysutils, uSpiel in 'uSpiel.pas';var spiel: TSpiel;
begin // Erzeugung der Datenmodell-Objekte spiel := TSpiel.create; // Durchführung eines Spiels spiel.einsatzZahlen; spiel.spielzahlSetzen(5); spiel.wuerfelWerfen; spiel.gewinnAuszahlen; // Ausgabe der Spieldaten writeln('Wuerfel A:', spiel.wuerfelA.getAugen); writeln('Wuerfel B:', spiel.wuerfelB.getAugen); writeln('Wuerfel C:', spiel.wuerfelC.getAugen); writeln('Konto:', spiel.konto.getStand); readln;end.
Objekte in Aktion
Erzeugung der Objekte
ProjectChuckALuck.dpr
![Page 45: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/45.jpg)
45
Benutzeroberfläche zum Datenmodell
unit uGUI;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, uSpiel;
type TGUI = class(TForm) PTitel: TPanel; ... private { Private-Deklarationen } spiel: TSpiel; public { Public-Deklarationen } end;
var GUI: TGUI;
...
Deklaration des Referenzattributs
uGUI.pas
Einbindung der
Datenmodell-Unit
![Page 46: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/46.jpg)
46
Benutzeroberfläche zum Datenmodell
...
implementation
{$R *.DFM}
procedure TGUI.FormCreate(Sender: TObject);begin spiel := TSpiel.create; labelKonto.Caption := IntToStr(spiel.konto.getStand)end;
procedure TGUI.ButtonEinsatzClick(Sender: TObject);begin spiel.einsatzZahlen; labelKonto.Caption := IntToStr(spiel.konto.getStand);end;
...
end.
Erzeugung der Datenmodell-Objekte
uGUI.pas
Implementierung der Ereignisverarbeitung
![Page 47: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/47.jpg)
47 Teil 6
Java - chuck a luck
![Page 48: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/48.jpg)
48 Beispiel 2: chuck a luck
Ziel ist es, ein einfaches System zur Simulation eines Würfels zu entwickeln.
![Page 49: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/49.jpg)
49 Datenmodell
Das Datenmodell ist komplexer und besteht aus Objekten, die in Beziehung stehen.
Miniwelt
1$ 1$ 1$ 1$1$ 1$ 1$1$ 1$
1
2
3
4
5
631$31$
Einsatz zahlen
Spielzahl setzen
Würfel werfen
Gewinn auszahlen
Datenmodell
![Page 50: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/50.jpg)
50
Implementierung des Datenmodells
public class Konto{
// Anfang Attribute private int stand = 0; // Ende Attribute
public Konto(int betrag) { stand = betrag; }
…
Konto.java
...
// Anfang Methoden
public void einzahlen(int betrag) { stand = stand + betrag; }
public void abheben(int betrag) { stand = stand - betrag; }
public int getStand() { return stand; }
// Ende Methoden}
![Page 51: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/51.jpg)
51
Implementierung des Datenmodells
public class Spiel{
// Anfang Attribute public Wuerfel wuerfelA, wuerfelB, wuerfelC; public Konto konto; public Spielzahl spielzahl; // Ende Attribute
public Spiel() { wuerfelA = new Wuerfel(); wuerfelB = new Wuerfel(); wuerfelC = new Wuerfel(); konto = new Konto(100); spielzahl = new Spielzahl(); }
…
Spiel.java
...
// Anfang Methoden
public void einsatzZahlen() { konto.abheben(1); }
...
![Page 52: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/52.jpg)
52 Test des Datenmodells
public class TestCuckALuck {
public static void main(String[] args) { // Erzeugung der Datenmodell-Objekte Spiel spiel = new Spiel(); // Durchführung eines Spiels spiel.einsatzZahlen(); spiel.spielzahlSetzen(5); spiel.wuerfelWerfen(); spiel.gewinnAuszahlen(); // Ausgabe der Spieldaten System.out.println("Würfel A: " + Integer.toString(spiel.wuerfelA.getAugen())); System.out.println("Würfel B: " + Integer.toString(spiel.wuerfelB.getAugen())); System.out.println("Würfel C: " + Integer.toString(spiel.wuerfelC.getAugen())); System.out.println("Konto: " + Integer.toString(spiel.konto.getStand())); }}
Objekte in Aktion
Erzeugung
der Objekte
TestChuckALuck.java
![Page 53: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/53.jpg)
53
Benutzeroberfläche zum Datenmodell
import java.awt.*;import java.awt.event.*;
public class GUI extends Frame { public class GUI extends Frame { // Anfang Attribute private Label labelUeberschrift = new Label(); private Panel panelKonto = new Panel(null); private Label labelUeberschriftKonto = new Label(); private Button buttonEinsatz = new Button(); private Label labelKonto = new Label(); private Panel panelZahl = new Panel(null); private CheckboxGroup checkboxGroup1 = new CheckboxGroup(); … private Panel panelWuerfel = new Panel(null); private Label labelUeberschriftWuerfel = new Label(); private Button buttonWuerfel = new Button(); private Label labelWuerfelA = new Label(); private Label labelWuerfelB = new Label(); private Label labelWuerfelC = new Label(); private Spiel spiel = new Spiel(); // Ende Attribute … GUI.java
Erzeugung der Datenmodell-
Objekte
Erzeugung der GUI-Objekte
![Page 54: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/54.jpg)
54
Benutzeroberfläche zum Datenmodell
…
// Anfang Methoden public String getSelectedRadioButton(CheckboxGroup cg) { return cg.getSelectedCheckbox().getLabel(); }
public void buttonGewinnAuszahlen_ActionPerformed(ActionEvent evt) { int gewaehltezahl = Integer.parseInt(this.getSelectedRadioButton(this.checkboxGroup1)); spiel.spielzahlSetzen(gewaehltezahl); spiel.gewinnAuszahlen(); labelKonto.setText(Integer.toString(spiel.konto.getStand())); }
…
// Ende Methoden
public static void main(String[] args) { new GUI("GUI"); }}
Erzeugung des GUI-
Verwaltungsobjekts
GUI.java
Datenmodell-Objekt in Aktion
![Page 55: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/55.jpg)
55 Teil 7
Python - Bank
![Page 56: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/56.jpg)
56 Beispiel 3: Bank
Ziel ist es, ein einfaches System zur Verwaltung von Bankkonten zu entwickeln.
![Page 57: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/57.jpg)
57 Datenmodell
Das Datenmodell ist komplexer und besteht aus Objekten, die in Beziehung stehen.
Miniwelt
Datenmodell
SKonto-Nr.234126
Blatt 342
![Page 58: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/58.jpg)
58
Implementierung des Datenmodells
class Konto(object): def __init__(self, nummer): self.nr = nummer self.stand = 0.0
def einzahlen(self, betrag): self.stand = self.stand + betrag
def auszahlen(self, betrag): self.stand = self.stand - betrag
def getNr(self): return self.nr
def getStand(self): return self.stand
...
datenmodell_bank.py
...
class Bank(object): def __init__(self): self.maxKontoNr = -1 self.konten = []
def kontoErzeugen(self, nummer): self.maxKontoNr = self.maxKontoNr + 1 konto = Konto(self.maxKontoNr) self.konten = self.konten + [konto]
def getKonto(self, nummer): return self.konten[nummer]
datenmodell_bank.py
![Page 59: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/59.jpg)
59 Test des Datenmodells
from datenmodell_bank import *bank = Bank()# Konten erzeugenfor i in range(10): bank.kontoErzeugen(i)# Einzahlungen und Auszahlungenbank.getKonto(4).einzahlen(100.0)bank.getKonto(4).auszahlen(40.0)bank.getKonto(7).einzahlen(40.0)# Ausgabe von Datenfor i in range(10): print('Konto mit Nummer' + str(i) + ': ' + str(bank.getKonto(i).getStand()))
Objekte in Aktion
Erzeugung der Objekte
ProjectBank.dpr
![Page 60: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/60.jpg)
60
Benutzeroberfläche zum Datenmodell
from tkinter import *
class GUIBank(): def __init__(self, bank): # Referenzattribute zum Datenmodell self.bank = bank # Erzeugung des Fensters self.fenster = Tk() self.fenster.title("Bank") self.fenster.geometry('240x165') # Rahmen PIN self.rahmenKonto = Frame(master=self.fenster, background="#BDE2F3") self.rahmenKonto.place(x=10, y=40, width=220, height=85) # Label mit Aufschrift Konto self.labelKonto = Label(master=self.rahmenKonto, background="gray", text="Konto") self.labelKonto.place(x=0, y=0, width=220, height=20) ...
Ereignisverarbeitung
GUI-Objekte
gui_chuckaluck.py
Datenmodell-Objekte
![Page 61: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/61.jpg)
61
Benutzeroberfläche zum Datenmodell
... def Button_Anzeigen_Click(self): kontonummer = int(self.entryNummer.get()) self.labelStand.config(text=float(self.bank.getKonto(kontonummer).getStand()))
def Button_Einzahlen_Click(self): kontonummer = int(self.entryNummer.get()) betrag = float(self.entryBetrag.get()) self.bank.getKonto(kontonummer).einzahlen(betrag) self.labelStand.config(text=float(self.bank.getKonto(kontonummer).getStand())) self.entryBetrag.delete(0, END)
def Button_Auszahlen_Click(self): kontonummer = int(self.entryNummer.get()) betrag = float(self.entryBetrag.get()) self.bank.getKonto(kontonummer).auszahlen(betrag) self.labelStand.config(text=float(self.bank.getKonto(kontonummer).getStand())) self.entryBetrag.delete(0, END) ...
Ereignisverarbeitung
GUI-Objekte
gui_chuckaluck.py
Datenmodell-Objekte
![Page 62: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/62.jpg)
62
Benutzeroberfläche zum Datenmodell
#-----------------------------------------------------------# Datenmodell#-----------------------------------------------------------
from datenmodell_bank import *bank = Bank()# Konten erzeugenfor i in range(10): bank.kontoErzeugen(i) #-----------------------------------------------------------# GUI-Objekt#-----------------------------------------------------------
from gui_bank import *guibank = GUIBank(bank)guibank.fenster.mainloop()
test_gui_bank.py
![Page 63: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/63.jpg)
63 Teil 5
Delphi - Bank
![Page 64: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/64.jpg)
64 Beispiel 3: Bank
Ziel ist es, ein einfaches System zur Verwaltung von Bankkonten zu entwickeln.
![Page 65: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/65.jpg)
65 Datenmodell
Das Datenmodell ist komplexer und besteht aus Objekten, die in Beziehung stehen.
Miniwelt
Datenmodell
SKonto-Nr.234126
Blatt 342
![Page 66: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/66.jpg)
66
Implementierung des Datenmodells
unit uKonto;
interface
type TKonto = class private nr: integer; stand: real; public constructor create(nummer: integer); procedure einzahlen(betrag: real); procedure auszahlen(betrag: real); function getStand: real; function getNr: integer; end;
implementation
constructor TKonto.create(nummer: integer);begin nr := nummer;end; ...
uKonto.pas
...
procedure TKonto.einzahlen(betrag: real);begin stand := stand + betrag;end;
procedure TKonto.auszahlen(betrag: real);begin stand := stand - betrag;end;
function TKonto.getStand: real;begin result := stand;end;
function TKonto.getNr: integer;begin result := nr;end;
end.
![Page 67: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/67.jpg)
67
Implementierung des Datenmodells
unit uBank;
interface
uses uKonto, classes; {TList}
type TBank = class private maxKontoNr: integer; konten: TList; public constructor create; procedure kontoErzeugen; function getKonto(nummer: integer): TKonto; end;
implementation
...
uBank.pas
...constructor TBank.create;begin maxKontoNr := -1; konten := TList.create;end;
procedure TBank.kontoErzeugen;var konto: TKonto;begin maxKontoNr := maxKontoNr + 1; konto := TKonto.create(maxKontoNr); konten.insert(maxKontoNr, konto);end;
function TBank.getKonto(nummer: integer): TKonto;begin result := konten[nummer];end;
end.
![Page 68: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/68.jpg)
68 Test des Datenmodells
program ProjectBank;{$APPTYPE CONSOLE}uses sysutils, uBank in 'uBank.pas';
var bank: TBank; i: integer;begin // Erzeugung der Datenmodell-Objekte bank := TBank.create; for i := 0 to 9 do bank.kontoErzeugen; // Einzahlungen und Auszahlungen bank.getKonto(4).einzahlen(100.0); bank.getKonto(4).auszahlen(40.0); bank.getKonto(7).einzahlen(40.0); // Ausgabe von Daten for i := 0 to 9 do writeln('Konto mit Nummer' + IntToStr(i) + ': ' + FloatToStr(bank.getKonto(i).getStand)); readln;end.
Objekte in Aktion
Erzeugung der Objekte
ProjectBank.dpr
![Page 69: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/69.jpg)
69
Benutzeroberfläche zum Datenmodell
unit uGUI;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, uBank;
type TGUI = class(TForm) PKonto: TPanel; ... private { Private-Deklarationen } bank: TBank; public { Public-Deklarationen } end;
var GUI: TGUI;
...
Deklaration des Referenzattributs
Einbindung der
Datenmodell-Unit
uGUI.pas
![Page 70: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/70.jpg)
70
Benutzeroberfläche zum Datenmodell
...
procedure TGUI.FormCreate(Sender: TObject);var i: integer;begin bank := TBank.create; for i := 0 to 9 do bank.kontoErzeugen;end;
procedure TGUI.BEinzahlenClick(Sender: TObject);var betrag: real; kontonummer: integer;begin kontonummer := StrToInt(ENummer.text); betrag := StrToFloat(EBetrag.Text); bank.getKonto(kontonummer).einzahlen(betrag); LStand.Caption := FloatToStr(bank.getKonto(kontonummer).getStand); EBetrag.Text := '';end; ...
uGUI.pas
![Page 71: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/71.jpg)
71
Benutzeroberfläche zum Datenmodell
...
procedure TGUI.BAuszahlenClick(Sender: TObject);var betrag: real; kontonummer: integer;begin kontonummer := StrToInt(ENummer.text); betrag := StrToFloat(EBetrag.Text); bank.getKonto(kontonummer).auszahlen(betrag); LStand.Caption := FloatToStr(bank.getKonto(kontonummer).getStand); EBetrag.Text := '';end;
procedure TGUI.BKontoAnzeigenClick(Sender: TObject);var kontonummer: integer;begin kontonummer := StrToInt(ENummer.text); LStand.Caption := FloatToStr(bank.getKonto(kontonummer).getStand);end; ...
uGUI.pas
![Page 72: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/72.jpg)
72 Teil 6
Java - Bank
![Page 73: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/73.jpg)
73 Beispiel 3: Bank
Ziel ist es, ein einfaches System zur Verwaltung von Bankkonten zu entwickeln.
![Page 74: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/74.jpg)
74 Datenmodell
Das Datenmodell ist komplexer und besteht aus Objekten, die in Beziehung stehen.
Miniwelt
Datenmodell
SKonto-Nr.234126
Blatt 342
![Page 75: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/75.jpg)
75
Implementierung des Datenmodells
public class Konto{ // Anfang Attribute private int nr; private float stand; // Ende Attribute
public Konto(int nummer) { nr = nummer; }
// Anfang Methoden
public void einzahlen(float betrag) { stand = stand + betrag; }
...
Alternativ: double stand
Konto.java
...
public void auszahlen(float betrag) { stand = stand - betrag; } public int getNr() { return nr; } public float getStand() { return stand; } // Ende Methoden
}
![Page 76: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/76.jpg)
76
Implementierung des Datenmodells
import java.util.ArrayList;
public class Bank{
// Anfang Attribute private int maxKontoNr; private ArrayList konten; // Ende Attribute
public Bank() { maxKontoNr = -1; konten = new ArrayList(); }
...
Bank.java
...
// Anfang Methoden
public void kontoErzeugen() { maxKontoNr = maxKontoNr + 1; Konto konto = new Konto(maxKontoNr); konten.add(konto); }
public Konto getKonto(int nummer) { return (Konto) konten.get(nummer); } // Ende Methoden
}
![Page 77: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/77.jpg)
77 Test des Datenmodells
public class TestBank {
public static void main(String[] args) { // Erzeugung der Objekte Bank bank = new Bank(); for (int i = 0; i < 10; i = i + 1) { bank.kontoErzeugen(); }; // Einzahlungen und Auszahlungen bank.getKonto(4).einzahlen(100.0f); bank.getKonto(4).auszahlen(40.0f); bank.getKonto(7).einzahlen(40.0f); // Ausgabe der Daten for (int i = 0; i < 10; i = i + 1) { System.out.println("Konto mit Numer" + Integer.toString(i) + "i: " + Float.toString(bank.getKonto(i).getStand())); } }}
Objekte in Aktion
Erzeugung der Objekte
TestBank.java
![Page 78: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/78.jpg)
78
Benutzeroberfläche zum Datenmodell
import java.awt.*;import java.awt.event.*;
public class GUI extends Frame { // Anfang Attribute private Panel pKonto = new Panel(null); private Label lNummerText = new Label(); private TextField tfNummer = new TextField(); private Label lStandText = new Label(); private Label lStand = new Label(); private Label lKonto = new Label(); private Button bKontoAnzeigen = new Button(); private Button bKontenErzeugen = new Button(); private Button bEinzahlen = new Button(); private Button bAuszahlen = new Button(); private TextField tfBetrag = new TextField(); private Bank bank = new Bank(); // Ende Attribute …
GUI.javaErzeugung der Datenmodell-
Objekte
Erzeugung der GUI-Objekte
![Page 79: Implementierung objektorientierter Modelle Klaus Becker 2009.](https://reader036.fdocument.pub/reader036/viewer/2022062417/55204d7049795902118c2a6c/html5/thumbnails/79.jpg)
79
Benutzeroberfläche zum Datenmodell
… public void bKontenErzeugen_ActionPerformed(ActionEvent evt) { for (int i = 0; i < 10; i = i + 1) {bank.kontoErzeugen();}; }
public void bKontoAnzeigen_ActionPerformed(ActionEvent evt) { int kontonummer = Integer.parseInt(tfNummer.getText()); lStand.setText(Float.toString(bank.getKonto(kontonummer).getStand())); }
public void bEinzahlen_ActionPerformed(ActionEvent evt) { int kontonummer = Integer.parseInt(tfNummer.getText()); float betrag = Float.parseFloat(tfBetrag.getText()); bank.getKonto(kontonummer).einzahlen(betrag); lStand.setText(Float.toString(bank.getKonto(kontonummer).getStand())); tfBetrag.setText(""); } … public static void main(String[] args) { new GUI("GUI"); } }
GUI.java