# 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 Schreibe eine Klasse Schaf. Das Schaf soll zwei Felder 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)?