![]() |
![]() |
![]() |
![]() |
![]() |
Hier der Beispielcode:
1 import java.io.*; // für I/O 2 // I/O = Input/Output 3 //////////////////////////// 4 class BankKonto 5 { 6 private double kontostand; // kontostand 7 8 public BankKonto(double startbetrag) // constructor 9 { 10 kontostand = startbetrag; 11 } 12 13 public void einzahlung(double betrag) // einzahlung 14 { 15 kontostand = kontostand + betrag; 16 } 17 18 public void auszahlung(double betrag) // auszahlung 19 { 20 kontostand = kontostand - betrag; 21 } 22 23 public void anzeigen() // zeigt kontostand 24 { 25 System.out.println("Kontostand=" + kontostand); 26 } 27 } // end class BankKonto
Erklärungen:
java.io.*
, dieses Paket ist für die Ein- und Ausgabe verantwortlich. An welcher Stelle in der Klasse BankKonto wird sie benötigt? ______________kontostand
wird in einer Variablen vom Typ double gespeichert, also einer Kommazahl. private
sorgt dafür, dass diese Variable nur in der Klasse BankKonto bekannt ist! public
vereinbart, man kann also auf sie zugreifen, wenn man ein Objekt der Klasse BankKonto ins Leben ruft. Wie? BankKonto bk1 = new BankKonto(100.00);
new
wird ein neues Objekt erzeugt, dabei wird ein sogenannter Konstruktor aufgerufen, das ist eine speziele Methode, die gewissermaßen 'Geburtshilfe' bei der Erzeugung des Objektes leistet. Der Konstruktor der Klasse wird in
double
.
Der Zugriff auf die private Variable kontostand
über Methoden der Klasse ist typisch für die objektorientierte Programmierung (=OOP), und weil das so wichtig ist, hier gleich nochmal in bold:main
? Nicht hier, sondern im Anwendungsprogramm . . .Hier ein kleines Beispielprogramm:
1 import java.io.*; 2 3 class BankApp 4 { 5 public static void main(String[] args) 6 { 7 BankKonto bk1 = new BankKonto(100.00); // Konto erzeugen 8 9 System.out.print("Vor den Transaktionen, "); 10 bk1.anzeigen(); // Kontostand anzeigen 11 12 bk1.einzahlung(74.35); // einzahlung 13 bk1.auszahlung(20.00); // auszahlung 14 15 System.out.print("Nach den Transaktionen, "); 16 bk1.anzeigen(); // Kontostand anzeigen 17 18 19 } // end main() 20 } // end class BankApp
Erklärungen:
Ein Testlauf:
Vor den Transaktionen, Kontostand=100.0 Nach den Transaktionen, Kontostand=154.35
Probleme . . .
kann es an folgender Stelle geben: Der Java-Compiler sucht bei der Übersetzung
der Klasse BankApp
die Klasse BankKonto
(beachte GROSS- und kleinschreibung), findet sie aber nicht.
Lösung: die übersetzte Datei BankKonto.class
muss im gleichen Verzeichnis stehen wie das zu übersetzende Java-Programm
BankApp.java
UML steht für Unified Modeling Language, zu Deutsch etwa eine Beschreibungssprache für Klassen (sehr frei übersetzt!). Beispiel:
Bankkonto |
kontostand: double |
constructor Bankkonto(startbetrag: double) method einzahlung(betrag: double) auszahlung(betrag: double) anzeigen() |
Klassen (und Objekte) werden in UML durch Rechtecke dargestellt: in der ersten Zeile steht der Name der Klasse, hier also Bankkonto
, in der zweiten Zeile werden die Eigenschaften aufgezählt, und da es in unserer Klasse nur eine Variable kontostand
gibt, steht hier auch nur eine Eigenschaft. In der dritten Zeile finden wir die Methoden (oder Funktionen) der Klasse Bankkonto: einzahlung
,
auszahlung
und anzeigen
, sowie den Konstruktor.
Link zu UML (Klassendiagramm): UML kompakt
Unser Java-Editor kann "automatisch" UML-Diagramme erzeugen, Beispiel:
Wie findest du bitte selbst heraus! (siehe Aufgabe 1)
<<<findest du im Lehrer-Ordner rechts oben auf dem Desktop unter wspiegel u. s. w.:, das Beispielprogramm musst du leider selbst tippen . . .
<<<BankKonto
mit dem Java-Editor ein UML-Diagramm!TaschengeldKonto.java
& teste sie!