Add termin1
This commit is contained in:
48
assert.md
Normal file
48
assert.md
Normal file
@ -0,0 +1,48 @@
|
||||
<!--
|
||||
title: Assertions
|
||||
description: Folien für Assertions in Programmieren 2
|
||||
url: https://git.haw-hamburg.de/pm2-tutorium/slides
|
||||
header: Programmieren 2 **Tutorium**
|
||||
footer: Henri Burau
|
||||
-->
|
||||
|
||||
# Vertragsmodell
|
||||
|
||||
Definiert das Verhältnis zwischen Klient und Dienstleister.
|
||||
|
||||
Ein Dienstleister kann Vorbedingungen für eine Dienstleistungen definieren. Der Klient
|
||||
kann dann korrekte Ergebnisse erwarten, solange er die Vorbedingungen einhält.
|
||||
|
||||
Verträge im Vertragsmodell konzentrieren sich immer auf die Operationen einer Klasse.
|
||||
|
||||
In PM2 konzentrieren wir uns vor allem auf die Vorbedingungen.
|
||||
|
||||
---
|
||||
|
||||
# Assertions
|
||||
Assertions sind die Umsetzung von Teilen des Vertragsmodells in Java.
|
||||
|
||||
```java
|
||||
int wert = 1;
|
||||
assert wert < 5 : "wert muss kleiner fünf sein";
|
||||
// ausgelöst, wenn Condition(wert < 5) nicht gilt.
|
||||
```
|
||||
Wird eine Assertion ausgelöst, dann wird das Programm beendet.
|
||||
|
||||
**Achtung:** `assert` muss enabled werden
|
||||
|
||||
---
|
||||
|
||||
## Aufgaben
|
||||
|
||||
1) Gegeben ist eine Methode `int getTriangleArea(int a, int b, int c)`, die die Fläche eines Dreiecks berechnet. Wie würde man sicherstellen, dass `a` und `b` kleiner sind als die Hypothenuse `c`?
|
||||
* ```java
|
||||
assert c > b && c > a : "Die Hypothenuse darf nicht kürzer als die beiden Schenkel sein."
|
||||
```
|
||||
|
||||
2) Wie würde man überprüfen ob ein String `input` leer oder gleich `null` ist?
|
||||
* ```java
|
||||
assert input != null && !input.isEmpty() : "Der String darf nicht null oder leer sein";
|
||||
```
|
||||
3) Ergänze die Methoden `damage` und `feed` um eine Implementation und sinnvolle Überprüfungen des Vertragsmodells.
|
||||
|
||||
Reference in New Issue
Block a user