Übungen
Aufgabe 1 - Datentypen
Ergänze die Tabelle zu den Datentypen in Kotlin. Lies bei Bedarf im Fachkonzept nach.
| Art der Daten | Datentyp in Kotlin |
|---|---|
| Ganze Zahlen | |
| Double | |
| Wahrheitswerte | |
| String |
Zusatzaufgabe: Finde heraus warum der Datentyp Double so heißt.
Aufgabe 2 - Nichts als Fehler
Die folgenden Codebeispiele enthalten jeweils mindestens einen Fehler. Beschreibe die Fehler und korrigiere den Code so, dass er fehlerfrei ist.
// a)
var karte = Karte("Herz", "Dame")
karte.druckeKarte()
var karte = Karte("Pik", 10)
karte.druckeKarte()
// b)
val karte = Karte("Karo", "K")
karte.druckeKarte()
karte = Karte("Kreuz", "4")
karte.druckeKarte()
// c)
... hier kommt bald noch mehr ...
Aufgabe
Schreibe ein Programm, das zwei (feste) Karten erzeugt. Diese sollen ausgegeben werden. Der Blackjack-Wert soll (als Summe) ausgegeben werden.
Aufgabe 3 - Person
Im BlueJ-Projekt person.zip ist die
Klasse Person definiert.
Lade das Projekt herunter, entpacke es und öffne es in BlueJ.
- Experimentiere grafisch - also per Mausklick - mit der Klasse. Erzeuge verschiedene Person-Objekte und rufe deren Methoden auf.
- Wende deine Beobachtungen an, um im Codepad Person-Objekte zu erzeugen und zu verwenden.
- Nutze die visuelle Darstellung per Mausklick oder das Codepad, um die Begriffe Konstruktor, Klasse, Objekt, Attribut, Datentyp, Methode, Parameter und Rückgabe zu erklären.
import java.time.LocalDate
class Person(
var name: String,
val geburtstagTag: Int,
val geburtstagMonat: Int,
val geburtsjahr: Int
) {
fun berechneAlter(): Int {
val heute = LocalDate.now()
val geburtstag = LocalDate.of(geburtsjahr, geburtstagMonat, geburtstagTag)
return geburtstag.until(heute).years
}
fun istVolljaehrig(): Boolean {
return berechneAlter() >= 18
}
fun druckeInfo() {
println("$name, geboren am %02d.%02d.%04d, ist %d Jahre alt.".format(geburtstagTag, geburtstagMonat, geburtsjahr, berechneAlter()))
}
fun berechneAlterAm(tag: Int, monat: Int, jahr: Int): Int {
val referenzdatum = LocalDate.of(jahr, monat, tag)
val geburtstag = LocalDate.of(geburtsjahr, geburtstagMonat, geburtstagTag)
return geburtstag.until(referenzdatum).years
}
}
fun main() {
val person1 = Person(...)
}