Programmieren_1/klassen.md

57 lines
1.3 KiB
Markdown

<!--
title: Klassen
description: Folien für Klassen in Programmieren 1
url: https://git.henriburau.de/tutorien/programmieren-1
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
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)?