Ü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.
Teste auch ein negatives Alter und die Grenzen deiner Alterskategorien.
Prüfe nach einer Altersänderung, ob die abgeleiteten Attribute sofort passen.
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 = 5
var glueckslevel = 10
fun langweilen() {
energie = energie - 1
glueckslevel = glueckslevel - 2
}
fun spielen() {
energie = energie - 1
glueckslevel = glueckslevel + 2
}
fun fuettern(menge: Int) {
if (energie + menge > 10) {
energie = 10
} else {
energie = energie + menge
}
}
fun istGluecklich(): Boolean {
if (glueckslevel >= 20) {
return true
} else {
return false
}
}
fun istTraurig(): Boolean {
if (glueckslevel <= 0) {
return true
} else {
return false
}
}
fun istVerhungert(): Boolean {
if (energie <= 0) {
return true
} else {
return false
}
}
}
Aufgabe 3 - Lautsprecher
Eine Klasse Lautsprecher soll folgende Eigenschaften besitzen:
- Eine Bezeichnung, die gelesen und verändert werden kann.
- Eine Lautstärke zwischen 0 und 100. Ungültige Werte sollen entweder ignoriert oder auf eine gültige Grenze gesetzt werden. Entscheide dich für eine der beiden Möglichkeiten.
- Die Eigenschaft
istStumm, die genau danntrueliefert, wenn die Lautstärke 0 ist. Sie soll nicht unabhängig von der Lautstärke geändert werden können.
(a) Ordne jeder Eigenschaft einen der drei Standardfälle zu: automatische Getter und Setter, eigener Setter oder abgeleitetes Attribut mit eigenem Getter. Begründe deine Zuordnung.
(b) Zeichne ein Klassendiagramm und implementiere die Klasse in Kotlin. Lege selbst einen sinnvollen Startwert für die Lautstärke fest.
(c) Teste gültige und ungültige Lautstärken sowie die Grenzen 0 und 100.
Prüfe nach jeder Änderung auch istStumm.
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)
}