Merge branch 'master' of git.haw-hamburg.de:pm1-tutorium/slides
This commit is contained in:
commit
1945e9464d
47
abstract.md
47
abstract.md
|
@ -5,3 +5,50 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides
|
||||||
header: Programmieren 1 **Tutorium**
|
header: Programmieren 1 **Tutorium**
|
||||||
footer: Henri Burau und Eva Meinen
|
footer: Henri Burau und Eva Meinen
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
# abstrakte Methoden
|
||||||
|
|
||||||
|
Eine Methode ohne Implementation
|
||||||
|
|
||||||
|
```java
|
||||||
|
abstact double getArea();
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# abstrakte Methoden
|
||||||
|
|
||||||
|
Eine Klasse mit mindestens einer abstrakten Methode muss abstrakt sein
|
||||||
|
|
||||||
|
Es können keine Objekte einer abstrakten Klasse erzeugt werden
|
||||||
|
|
||||||
|
```java
|
||||||
|
abstract class Shape {
|
||||||
|
abstact double getArea();
|
||||||
|
String toString() {
|
||||||
|
return "Shape";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Es können keine Objekte einer abstrakten Klasse erzeugt werden, jedoch Variablen dieser ein Objekt einer nicht abstrakten Subklasse aufnehmen:
|
||||||
|
|
||||||
|
```java
|
||||||
|
class Circle extends Shape {
|
||||||
|
private double radius;
|
||||||
|
Circle(int rad) {radius = rad; }
|
||||||
|
|
||||||
|
double getArea(){
|
||||||
|
return 3.14 * radius * radius;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Shape shape1 = newCircle(4);
|
||||||
|
//System.out.printf("%.2f", shape1.getArea());
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Übung
|
||||||
|
|
||||||
|
* Lasse die Klasse sheep (und andere Tiere) von einer abstrakten Klasse animal erben. Ändere den Code and den richtigen Stellen ab.
|
27
interface.md
27
interface.md
|
@ -5,3 +5,30 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides
|
||||||
header: Programmieren 1 **Tutorium**
|
header: Programmieren 1 **Tutorium**
|
||||||
footer: Henri Burau und Eva Meinen
|
footer: Henri Burau und Eva Meinen
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
# Interfaces
|
||||||
|
|
||||||
|
Schnittstelle
|
||||||
|
|
||||||
|
nur Methodendeklaration (öffentliche Methoden)
|
||||||
|
|
||||||
|
```java
|
||||||
|
interface Shape {
|
||||||
|
double getArea();
|
||||||
|
String toString();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
---
|
||||||
|
|
||||||
|
Erbende Klassen implementieren ein Interface (auch mehr als eines möglich)
|
||||||
|
|
||||||
|
```java
|
||||||
|
class Circle implements Shape {
|
||||||
|
private double radius;
|
||||||
|
double getArea(){
|
||||||
|
return 3.14 * radius * radius;
|
||||||
|
}
|
||||||
|
String toString() {
|
||||||
|
return "Circle";}
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue