diff --git a/klassen.md b/klassen.md index d763cd0..42c6093 100644 --- a/klassen.md +++ b/klassen.md @@ -6,7 +6,51 @@ header: Programmieren 1 **Tutorium** footer: Henri Burau und Eva Meinen --> +# Klassen +Vorlagen für konkrete Exemplare. Bestehen aus Methoden und Variablen. Eine Klasse ist ein neuer Datentyp. + +```java +class Counter { + private int counts = 0; + + public void countUp() { + counts++; + } + + public int getCount() { + return counts; + } +} +``` + +--- + +## Benutzen von Klassen +Erzeugen von neuen Exemplaren mit `new`. Methoden werden mit der Punktnotation an einem Exemplar aufgerufen. + +```java +public static void main(String[] args) { + Counter counter = new Counter(); + System.out.printf(counter.getCount()); + counter.countUp(); + counter.countUp(); + System.out.printf(counter.getCount()); +} +``` + +--- # Aufgaben -TODO: Schaf +Schreibe eine Klasse Schaf. Das Schaf soll zwei Attribute haben: +* `age` (in Tagen gemessen, Ganzzahl) +* `health` (Maximal 10, Minimal 0, Fließkommazahl) + +Folgende Methoden braucht das Schaf: +* `getHealth` gibt die aktuelle `health` zurück +* `damage double ` verringert die `health` um `amount` +* `feed double` erhöht die `health` um `amount` +* `sleep` macht das Schaf einen Tag älter +* `getAge` gibt `age` zurück +* `isAlive` ist das Schaf noch am Leben? +* `isAdult` ist das Schaf erwachsen (älter als 10 Tage)?