Übungen
Aufgabe 1 - Person
Es soll eine Klasse Person erstellt werden. Eine Person hat
einen Namen, ein Alter, ein Hobby und ist volljährig oder nicht.
Außerdem hat sie eine Alterskategorie (Kind, Jugendlich, Erwachsen, Senior).
Eine Person kann sich vorstellen und gibt dabei alle relevanten
Informationen aus.
(a) Erstelle ein Klassendiagramm für die Klasse Person.
Entscheide dabei,
- welche Parameter der Konstruktor haben soll.
- ob es berechnete Eigenschaften - also computed properties - gibt.
- welche Attribute veränderbar (
var) oder unveränderbar (val) sind. - welche Getter und Setter benötigt werden.
(b) Implementiere die Klasse Person in Kotlin und
schreibe ein Testprogramm, in dem du mindestens drei Personen erstellst
und deren Attribute und Methoden aufrufst.
Aufgabe 2 - Tier-Klasse
Analysiere die Klasse Tier aus dem Projekt
Tierisch glücklich.
Überlege, wie die Klasse mit Hilfe von Gettern, Settern und computed properties
verbessert werden könnte.
Erstelle ein Klassendiagramm und passe die Implementierung der Klasse entsprechend an.
class Tier(val name: String) {
var energie: Int = 5 // man kommt eher schwach auf die Welt
var glueckslevel: Int = 10 // mittelglücklich
fun fuettern(futtermenge: Int) {
if(energie + futtermenge > 10)
energie = 10
else
energie += futtermenge
glueckslevel -= 1
}
fun spielen() {
energie -= 2
glueckslevel += 3
}
fun langweilen() {
energie -= 1
glueckslevel -= 2
}
fun istGluecklich(): Boolean {
if(glueckslevel >= 20) {
return true
} else {
return false
}
}
fun istTraurig(): Boolean {
return glueckslevel <= 0
}
fun istVerhungert(): Boolean {
return energie <= 0
}
}
Aufgabe 3 - Standardfälle
Beim Umgang mit Gettern und Settern gibt es drei Fälle, die besonders häufig auftreten:
- Getter und Setter werden automatisch generiert.
- Man definiert einen eigenen Setter.
- Man definiert einen eigenen Getter.
Beschreibe diese drei Fälle näher, gib eine Beispiel-Klasse als Kotlin-Code an und zeichne ein Klassendiagramm für die Klasse.
Aufgabe 4 - Logische Ausdrücke interpretieren
Gehe von folgender Variablenbelegung aus und ordne die Ausdrücke zu. Du kannst die Ausdrücke bei Bedarf online testen.
fun main() {
val a = 5
val b = 7
val infoIstToll = true
//print(a < b)
}