Hi, diese Woche geht es um Werttypen.
Dazu wird es auch wieder zwei Videos geben. In dem
ersten Video werde ich mir mit euch die Klasse Geldbetrag,
die wir, ich glaube, in Vorlesung 6 zusammengebaut haben,
nochmal ein bisschen genauer angucken und da noch ein paar Ergänzungen vornehmen.
Und in dem zweiten Video wollen wir aus dieser Klasse dann einen echten Werttypen machen.
Also so gucken wir uns die Klasse vielleicht zuerst mal zusammen an.
Wir haben hier einen Euro und einen Cent-Anteil, einen Konstruktor, der einen Cent-Betrag entgegennimmt und das Ganze auf eure Cent-Anteile verteilt. Wir haben eine Methode,
mit der wir addieren können, eine Methode,
mit der wir multiplizieren können, dazu gekommen,
ist eine Methode, die sagt, ob multiplizieren überhaupt möglich ist,
weil wir speichern das Ganze hier oben ja in Inns intern und wir dürfen nicht über Inte Jamax Value hinausgehen und dann können wir uns in eure Anteile,
einen Centanteil formatierten Geldbetrag und so weiter und so fort geben lassen und so eine Methode,
wie ist multiplizieren möglich, möchte ich jetzt mit euch fürs Addieren bauen,
ist Public, ich bin vielleicht Public mit B,
gibt einen Bulien zurück Ist...
Wenn dir unmöglich... Nimm zwei Geldbeträge entgegen.
Und jetzt haben wir hin auf Ariabel vom Typ Long.
Die heißt Euro
Betrag. Und die ergibt sich aus dem Euro-Anteil von Betrag 1
plus wieder auf Long gecastet.
Ein Euro-Anteil von Betrag
Und dann haben wir wieder was vom Typ Long,
nein, diesmal reicht Int, Cent-Betrag.
Und der ergibt sich aus dem jeweiligen Cent-Beträgen. Cent-Unteil plus Betrag.
2. Grit. Cent-Anteil. Und falls jetzt Unser Cent-Anteil,
dadurch durch diese Addition über 100 gekommen ist oder größer
gleich 100 ist, also sind Betrag größer gleich.
100, dann haben wir ja einen neuen Folgen Euro.
Euro. Betrag. Plus plus sind die Kohlen
Ach so, Centbetrag haben wir falsch geschrieben.
Und Eurobetrag haben wir hier oben falsch geschrieben.
So. Mann. Da haben wir es falsch geschrieben.
Okay, jetzt passt das. Dann wird der Euroanteil halt
um eins erhöht, wenn wir über 100 hinausgekommen sind.
Und jetzt returnen wir einfach, ob unser Eurobetrag Kleiner,
gleich. Integer. Max Value ist,
wenn das der Fall ist, dann ist eine Addition möglich.
Jetzt möchte ich mit euch noch eine Möglichkeit implementieren,
dass man zwei Geldbeträge miteinander vergleichen kann,
ob die größer oder, ob die größer oder gleich sind.
Da machen wir wieder eine öffentliche Methode.
Bullchen ist größer
Gleich. Und ihn nimmt zwei Geldbeträge entgegen. Ja,
das kommt aber natürlich blöd. Und noch ein Geldbetrag. So,
und da haben wir mehrere Ints,
also einmal in Euro 1, nenne ich das einfach mal,
dass der eure Anteil von Betrag 1.
In Euro 2. Das ist der Hoxing.
Und das Gleiche machen wir auch noch mit Cent.
Und für Betrag auch, für Betrag 2 auch.
Okay, und wann sind zwei Geldbeträge? Gleich oder wann
ist ein Geldbetrag größer gleich einem anderen? Es wird immer
überprüft, ob Betrag 1 größer der Gleichbetrag 2 ist.
Ist auf alle Fälle größer gleich, wenn Euro 1 größer
gleich Euro 2 ist. Weil dann sind die Eurobeträge schon größer,
müssen wir uns um die Cent nicht kümmern.
Oder wenn Euro 1 gleich Euro 2 ist Und zusätzlich Cent 1 größer gleich. Cent 2. Ja,
also ganz klar, wir holen uns hier den Euro-Anteil,
wenn der Euro-Anteil des ersten Betrages hier schon mindestens so groß ist,
wie der des zweiten Betrages,
dann ist der Geldbetrag 1 auf alle Fälle größer gleich.
Geldbetrag 2, wenn das hier nicht der Fall ist,
dann gucken wir,
ob die
wenigstens gleich groß sind
Und der Cent-Anteil von 1 größer ist als der Cent-Anteil von 2. Das heißt,
hier dürfen wir nicht größer gleich schreiben, hier müssen wir größer schreiben.
Alles andere wäre einigermaßen unsinnig. Okay,
also wenn es echt größer ist,
dann ist eure sowieso schon mal größer, wenn es gleich ist,
müssen wir hier mit größer gleich gucken,
ob der Cent-Anteil auch wenigstens gleich groß ist.
Jetzt würde ich mit euch noch eine Methode machen,
mit der man zwei Geldbeträge voneinander abziehen kann.
Die ist auch wieder public
Gibt einen Geldbetrag zurück.
Die heißt Subtrahiere. Nimm zwei Geldbeträge entgegen
So. Und wir wollen, dass Geldbeträge nicht negativ werden können,
weil ich habe halt noch nie minus 20-Euro-Schein gesehen.
Deswegen fragen wir erstmal, wieso habe ich das groß geschrieben,
das weiß auch niemand.
Jetzt fragen wir erstmal, ist größer gleich und wir gucken,
ob Betrag 1 größer oder Gleichbetrag 2 ist.
Wenn das der Fall ist,
dann haben wir hier einen Int,
das ist der Euro-Anteil
Das ist nichts anderes als Betrag.
Eins. Get Euro. Minus. Betrag. 2. Get
. Euro. Und das gleich mal war mit dem Cent-Anteil
Das ist Betrag 1.getset-anteil minus Betrag 2.get Cent-Anteil. So,
wenn wir jetzt durch dieses Abziehen zu einem negativen Cent-Anteil gekommen sind, also IF, Cent-Anteil.
Kleiner Null. Dann müssen wir von unserem Euro-Anteil einen abziehen,
weil wir dann halt die Euro-Grenze unterschritten haben und müssen auf den Cent-Anteil 100 draufrechnen.
Das könnt ihr einfach mal an so einem Zahlenbeispiel ausprobieren.
Wenn ihr von 1,40 Euro, 90 Cent abzieht,
dann habt ihr einen geringeren eins geringeren Euro-Betrag,
kommt durch die Cent-Anteil-Subkraktion auf minus 40,
müsst 100 wieder dazuzählen,
seid dabei 50 Cent und das kommt bei der Rechnung ja auch raus und jetzt returnen wir hier einen neuen Geldbetrag.
Und der kriegt den Euro-Anteil und den Cent-Anteil So,
da fällt mir ein, ich will mit euch noch einen neuen Konstruktor bauen.
Deswegen ist das hier rot. Und jetzt nochmal Return.
Falls wir, falls Betrag 1 nicht größer Gleichbetrag 2 ist,
drehen wir die Rechnung einfach um.
Also sagen wir hier wieder subtrahiere und sagen an der Stelle
subtrahiere von Betrag 2 den Betrag 1.
Das haben wir dann hier. Jetzt bauen wir uns einfach
nur nochmal den anderen Konstruktor
Geldbetrag. Und dann zwei Ins entgegen Euro.
Anteil. Noch ein Int. Cent. Anteil. Und
das wird einfach auf die Exemplarvariablen verteilt.
Also unterstrich eure Anteil gleich.
Euroanteil. Unterstrich Cent-Anteil
Gleich. Cent-Anteil. So, dann haben wir das jetzt auch fertig.
Wir haben jetzt also quasi eine Methode gebaut, womit wir überprüfen können,
ob Addieren überhaupt im Bereich bis inte Jummax Value bleibt.
Und wir haben uns jetzt noch zusätzlich eine Methode gebaut,
mit der man zwei Geldbeträge voneinander abziehen kann.
Und es könnte natürlich auch in den Übungen sehr nützlich sein,
einfach so einen Vergleich zu haben,
es einen Geldbetrag größer gleich einem anderen.
Das war es von mir in diesem ersten Video
und wir sehen uns dann im zweiten Video wieder,
wo wir aus dieser Klasse dann tatsächlich einen echten Werttyp machen