Ja, hi. Diese Woche geht es um abstrakte Klassen,
um Einschubmethoden und um Schablonenmethoden. Dazu wird es auch wieder
zwei Videos geben. In dem ersten werde ich euch das kleine Beispielprojekt,
was ich dafür gebaut habe,
ein bisschen zeigen und auch noch ein klein bisschen weiterentwickeln und in einem zweiten Video gucken wir uns dann an,
wie wir mit abstrakten Klassen,
Einschub- und Schablonenmethoden das Ganze ein bisschen schöner bauen können.
Ich zeige euch am besten jetzt mal die einzelnen Klassen,
die bisher schon da sind,
haben wir zum einen die Klasse Bank,
da wird ein Exemplar der Klasse Girokonto erzeugt,
es wird ein Sollzinssatz und ein Dispo übergeben
Dann wird ein Objekt der Klasse Girokunde aufgerufen, Girokunde,
ist einfach nur dafür da, um Dinge einzuzahlen und abzuheben.
Ihr seht, das ist hier noch rot,
weil Girokonto noch nicht wirklich gebaut ist.
Und dann wird am Ende noch ein Jahresabschluss gemacht und
das Gleiche haben wir hier auch nochmal für Sparbuch.
Wenn wir uns das Sparbuch mal ansehen,
dann haben wir da so die üblichen Methoden,
allerdings verwenden wir diesmal eine Liste von Kontobewegungen und nicht ein Seil oder immer upgedatet wird.
Wir haben die Methodenzahler ein, heber ab.
Da kommt auch Berechen Rosaldo vor. Rosaldo ist nichts anderes
als die Summe aller bisherigen Kontobewegungen. Dann können wir noch
Zinsen berechnen. Wir kriegen auf Sparbuch ja Habenzinsen,
machen Jahresabschluss, haben eine Methode mit dem Kontostand zu geben.
Der berechnet sich aus den Rosaldo,
das heißt der Summe der Kontobewegung und den berechneten Zinsen.
Und dann haben wir eine Methode,
um das Ganze zu drucken
Und das Ganze wollen wir jetzt einfach mal für die Klasse
Girokonto von Hand bauen. Hier gibt es die Methode Drucke schon,
weil hier eine Menge Text drin ist und nicht schlicht und einfach keine Lust hatte,
dass jetzt hier live mit euch zu tippen.
Deswegen habe ich es mit Copy-Paste gemacht und habe einfach Sparbuch
durch Girokonto ersetzt. Okay, als erstes machen wir uns
eine private Exemplarreable vom Typ List mit Elementtyp Integer
und nennen die mal Kontobewegung
Und dann brauchen wir noch eine private Exemplarvariable vom Typ in,
und das ist unser Dispo,
von dem Girokonto können wir ja unter Umständen überziehen und
wir kriegen auch noch einen Zinssatz reingereicht,
dafür haben wir auch noch einen private Exemplarvariable,
auch wieder vom Typ Int
und nennen das ganze Zinssatz
Wir schreiben Zinssatz mit N, einfach weil es schöner ist.
Im Konstruktor. Kriegen wir diese Parameter übergeben,
als erstes den Zinssatz, dann in Dispo.
Das weisen wir hier auch zu
Dem Dispo auch. Ja. Und dann müssen wir uns
natürlich auch noch ein Exemplar von einer Listenklasse erzeugen.
Genau, ich nehme da eine Raillist.
Da dürfen Into Ja rein
Kann man aufklimmern zusehen mit Colan. Natürlich kennt er immer wieder Railist nicht,
deswegen müssen wir es importieren und List kennt er auch nicht.
Deswegen müssen wir es auch importieren.
Ach ja, ich muss hier natürlich die Typen angeben.
Und beim Dispo logischerweise auch. Okay,
dann können wir eine Methode machen,
zahle ein
Ja. Die gibt nichts zurück, nimmt aber ein Parameter
vom Typ hin entgegen, den nennen wir Betrag.
Und ein Zahn ist beim Girokonto ganz einfach. Wir nehmen
die Kontobewegung und fügen der Liste einfach den Betrag hinzu.
Dann haben wir natürlich auch, ich mache das mal ein bisschen weiter.
Unserhin, ja. Dann haben wir natürlich auch noch
eine Methode Heber ab.
Gibt wieder nichts zurück
Und wieder ein Typ, ein Parameter vom Typ Int
entgegen, da heißt jeder Betrag. So,
und jetzt wollen wir nur dann abheben können,
wenn der Betrag, der abgehoben werden soll,
weniger ist als das, was drauf ist, plus Dispo.
Das heißt also, wenn wir nicht über unser Dispolement
hinausgehen würden, also If,
berechne Rosaldo
Plus Dispo, größer oder gleich den Betrag ist.
Dann würden wir nicht über unseren, über das Dispo-Limit hinausgehen,
dann fügen wir der Liste mit den Kontobewegungen den Betrag allerdings mit Minuszeichen,
weil es ja Abheben ist.
Hinzu. Und wenn es eben nicht der Fall ist,
Dann schreiben wir, keine Ahnung, Dispo.
Reicht. Nicht aus. Ausrufezeichen. Genau, Berechnung Rosalde war ja,
wie wir in der Klasse Sprachbuch gesehen haben, die Summe sämtlicher Kontobewegung.
Also hier und wird es deswegen rot unterkringelt,
weil wir die Methode noch nicht haben.
Also bauen wir sie. Public gibt ein In zurück
, berechnen
Roseldo. Keine Parameter entgegen und hier nehmen wir einfach
eine 4-Each-Schleife. Integer, nennen wir es mal Kontobewegung.
Aus dieser Kontobewegung und wir machen uns hier noch eine
lokale Vagable vom Typ Int
. Roseldo
Sitzensglanze gleich null und sagen hier dann einfach,
wir ziehen zu 10 zum Rosaldo.
Plus gleich. Die Kontobewegung hinzu. So würden wir das
aufsummieren und wir müssen natürlich auch noch einen Bad Return.
Und zwar im Rosaldo
Public mit einem B wird besser erkannt.
Genau. Dann haben wir auch noch eine Methode,
die uns den Kontostand zurückgibt, genau wie beim Sparbuch.
Das ist Public, weil es mit Zinsen ist und die
ja mal ein bisschen krumm sein können,
geben wir hier ein Double zurück.
Das Ganze heißt Beep Kontostand, nimmt keine Parameter entgegen und
returnt einfach berechnet Rosaldo, die Summe aller Kontobewegungen.
Plus, die haben, die Sollzinsen, die wir haben könnten.
Beim Girokonto gibt es halt Sollzinsen in meinem Sparbuch.
Haben Zinsen, also berechnen. Zinsen. Klammer auf Klammer
zu, Semi-Cola und gleich eine Zinsen gibt es noch nicht.
Also, warum wäre sie uns? Public. Double.
Gerechnet Zinsen
Keine Parameter. Tiere nehmen wir normale Vorschleife vor,
in die gleich neue,
die kleiner als die Länge der Liste der Kontobewegung und dann inkrementieren.
Ich mache einen Plus plus
Genau, wir wollen ja die, wir wollen die Zinsen
berechnen und zwar haben wir dann kumuliert immer einen laufenden Rosaldo.
Machen wir so eine lokale Variable. Initialisieren wir mit null
und wir haben eine Variable vom Typ Double.
Das sind einfach die Zinsen. Die initialisieren wir auch
mit null
Und jetzt bilden wir unseren laufenden Osaldo. Indem wir sagen,
wir zählen immer zu dem, bei der Iteration davor,
kein Mal, sondern plus gleich.
Die jeweilige Kontobewegung dazu mit.gettely kriegen wir eben die Kontobewegung für
den Index i. Und immer dann, wenn der laufende Rosaldo
kleiner Null ist, weil dann zahlen wir
ihr Sollzinsen
Rechnen wir auf unsere Zinsen was drauf.
Und das ist dann auch wieder Zinsen. Plus gleich.
Und jetzt der laufende Rosaldo. Mal unser Zins, unseren
Zinssatz. Geteilt durch 100. Geh hier vereinfachend davon aus,
dass ich keine Zeit berücksichtigen muss und dass alle Ein- und
Auszahlungen immer in den gleichen Zeitabständen vor sich gehen.
Das ist natürlich nicht so wahnsinnig realistisch.
Aber das vereinfacht für uns die Sache hier,
weil wir eigentlich auf was anderes hinaus wollen.
Und dann müssen wir natürlich die Zinsen
auch noch returnen
Zimsen. Genau. Und jetzt als allerletztes machen wir uns noch,
genau wie beim Sparbuch, eine Methode, die den Jahresabschluss berechnet.
East Public gibt ein Double zurück. Nein,
gar nichts zurück, weil wir es nur ausdrücken wollen,
ausdrucken wollen.
Mache Jahresabschluss
Nimmt keine Parameter entgegen. Und wir berechnen uns erst in
Rosaldo, also in roh. Saldo. Gleich. Dafür
haben wir eine Methode. Dann berechnen wir die Zinsen.
Wir sind ja vom Typ Double. Gleich. Berechne.
Zinsen. Und dann haben wir hier schon die Methode drin,
die uns das Ganze ausdruckt
Und das wollen wir jetzt auch machen, nehmen Drucke,
übergeben als erstes den Rosaldo, dann die Zinsen,
speichern das Ganze und haben noch ein Problem mit.
Diesem hier war ich das klein geschrieben habe und hier die Lokale war,
ja, wie groß, irgendwo steckt noch ein Problem.
Ah ja, wir müssen natürlich nicht kleiner bleiben als die Konti-Bewegung,
logischerweise müssen wir kleiner bleiben als Kontobewegung.size,
also die Länge der Liste
Und jetzt sollte das Ganze aber funktionieren.
Und jetzt könnte man hier einfach mal auf Start-up gehen.
Start-up hat wie immer nur die Main-Methode und startet den ganzen Kram.
Sagen, Run is Java Application und kriegen hier unten,
irgendwo reichte mal der Dispo nicht aus.
Deswegen wurde die Auszahlung nicht genommen. Der Kontostand war so
viel. Die Seide aus Ein- und Auszahlung war das.
Der Sollzins, der angefallen ist, war null.
Für das Sparbuch war der Kontostand Das und der Saldos
Ein- und Auszahlung, den hatten wir hier auch.
Also das ist im Prinzip das, was bei Mache-Jahresabschluss
in der Bank hier passiert. Das ist unser Beispielprojekt.
Ich wollte das extra mit der Klasse Girokonto nicht schon vorbereitet haben,
damit ihr so nach und nach seht,
was denn da überhaupt so passieren soll,
weil wenn ich das euch einfach nur hier in der Klasse zeige,
dann ist das vielleicht ein bisschen drüber gehuscht und deswegen haben wir es hier mal zusammen entwickelt.
Im nächsten Video gucken wir uns dann an,
wie wir das Ganze mithilfe von Schablonenmethode und Einschubmethode und abstrakten Klassen
ein bisschen schöner gestalten können