Übungsbeispiele
1. Beispiel: Zahlen - Summe und Vergleich
Details:
-
Methode
wert2Groesser(): boolean
… gibttrue
zurück, wennwert2
größer alswert1
. -
Methode
berechneSumme(): int
… liefert Summe von wert1 undwert2 zurück. -
Methode
summeGroesser(zahl: int): boolean
… nutzt obige Methode zur Berechnung der Summe im Vergleich. -
Methode
zahlZwischenWerten(zahl: int) : boolean
… prüft obzahl
innerhalb des durchwert1
undwert2
definierten Intervalls liegt (beide Grenzen inklusive) -
Methode
printInfo(zahl: int)
… gibt z.B. für wert1=5, wert2=10, Übergabeparameter zahl=3 aus (printInfo(…) hat einen Parameter!):##### Klasse 'Zahlenvergleich' ##### zahl=3 wert1=5 wert2=10 wert2Groesser(3) ... true berechneSumme() ... 15 summeGroesser(3) ... true zahlZwischenWerten(3) ... false
2. Beispiel: Rechteck durch Öffnung
Details
-
Die Öffnung ist ebenfalls rechteckig, die beiden gegebenen Rechtecksseiten sind nicht nach Länge und Breite geordnet!
-
Es gibt keine Setter!
-
Im Konstruktor wird geprüft, ob die übergebene Länge NICHT KLEINER als die übergebene Breite ist. Falls doch, wird eine sinnvoll beschreibende Fehlermeldung ausgegeben und beide Werte auf 0 gesetzt.
-
wert1Groesser(…): boolean
… gibttrue
zurück, wennwert1
größer alswert2
, sonst false. Soll im Konstruktor und in den beiden nachfolgenden Methoden verwendet werden (Hinweis: für Prüfung in Gegenrichtung einfach die Werte umgekehrt einsetzen!). -
laengereSeite()
… liefert die Abmessung der längeren Seite -
kuerzereSeite()
… analog -
Hinweis: wenn beide gleich lang sind, ist egal, welche Seitenläng jeweils geliefert wird!
-
passtDurchOeffnung(…)
… das Rechteck kann 90° gedreht werden! Durch Nutzung der beiden MethodenlaengereSeite()
undkuerzereSeite()
müssen weniger Vergleiche durchgeführt werden.
Welche der beiden Werte größer ist, ist vorab nicht festgelegt. -
printInfo(9, 11)
… fürlaenge=10.0
,breite=6.0
(hat hier 2 Parameter!):##### Klasse 'Rechteck' ##### ** Öffnung: seite1=9, seite2=11 ** Rechteck: laenge=10, breite=6 laengereSeite(): 10.0 kuerzereSeite(): 6.0 ** Check: passtDurchOeffnung(9, 11): true
3. Beispiel: Anpassung von Boolean-Ausgaben
Als Basis kann das auf Moodle bereitgestellte BlueJ-Projekt Demo1-Person Datei verwendet werden.
Details
-
Vervollständigung der Getter und Setter
-
neue Methode:
alter(…)
… berechnet ungefähres Alter aus der Differenz `diesesJahr – geburtsJahr -
neue Methode:
geschlecht(): String
… diese liefert das Geschlecht als Text:männlich/weiblich
– Basis ist die boolean Eigenschaftweiblich
mit if/else. Wird in printInfo() -
printInfo(diesesJahr: int)
soll z.B. fürEvi, May, 2002, weiblich
liefern:
+++++ Klasse 'Person' +++++ Vorname: Evi Nachname: May Geburtsjahr: 2002 Alter: 18 Geschlecht: weiblich
Zum Berechnen des Alters ist das aktuelle Jahr durchzugeben!
4. Beispiel: Maximum, Minimum u.ä.
Details
-
maxWert() … liefert den Zahlenwert der größten Zahl
-
minWert() … liefert den Zahlenwert der kleinsten Zahl
-
maxWertPos() … liefert die "Positionsnummer" (1, 2 3) der größten Zahl
-
minWertPos() … liefert die "Positionsnummer" (1, 2 3) der kleinsten Zahl
-
printInfo() … liefert z.B. für die Zahlen 11.5, -10.1, 50.99:
+++++ MinMaxBerechnung +++++ Zahlen: z1=11.5, z2=-10.1, z3=50.99 MaxWert: 50.99 MaxWertPos: 3 MinWert: -10.1 MinWertPos: 2