Einstieg in die Informatik mit Java - KIT - Fakultät für Mathematik

Eigenschaften von Schnittstellen. • Schnittstellen können keine Instanzen bilden,. • Referenzen sind allerdings erlaubt. Beispiel interface Funktion {...

17 downloads 284 Views 74KB Size
Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut fur ¨ Angewandte und Numerische Mathematik

1 / 11

Gliederung

1 Einfuhrung ¨

2 Definition einer Schnittstelle

3 Implementierung einer Schnittstelle

2 / 11

Gliederung

1 Einfuhrung ¨

2 Definition einer Schnittstelle

3 Implementierung einer Schnittstelle

3 / 11

Einfuhrung ¨ ¨ Schnittstellen sind ahnlich aufgebaut wie Klassen, aber einfacher: • Sie dienen zur Beschreibung abstrakter Konzepte, wie z.B.

reelle Funktion“, Relation“, usw. ” ” • Schnittstellen durfen nur Konstanten enthalten, keine ¨ Variablen. • Schnittstellen durfen nur abstrakte Methoden enthalten, ¨

keine Implementierungen (statt {...} wird nur ; angegeben). • Referenzen auf Schnittstellen sind erlaubt, aber Instanzen

¨ konnen nicht gebildet werden. • Klassen konnen ¨ Schnittstellen implementieren; dann durfen Instanzen der Klasse uber die Referenzen der ¨ ¨ Schnittstelle angesprochen werden. 4 / 11

Gliederung

1 Einfuhrung ¨

2 Definition einer Schnittstelle

3 Implementierung einer Schnittstelle

5 / 11

Definition einer Schnittstelle Syntax i n t e r f a c e Name { . . . / / nur Konstanten , k e i n e V a r i a b l e n ! . . . / / nur a b s t r a k t e Methoden , k e i n e Implementierung ! }

Syntax abstrakte Methode Modifizierer Ergebnistyp Methodenname (formale Argumentliste);

• Abstrakte Methoden deklarieren nur die Methode. • Sie besitzen keinen Anweisungsteil. • Die Definition der Methoden muss spater ¨ bei der

Implementierung der Schnittstelle erfolgen. • Eine Schnittstelle stellt einen Kontrakt dar, der von der

Implementierung erfullt ¨ werden muss. 6 / 11

Eigenschaften von Schnittstellen • Schnittstellen konnen ¨ keine Instanzen bilden, • Referenzen sind allerdings erlaubt.

Beispiel interface Funktion { double auswerten ( double x ) ; } Verwendung z.B. in einer Methode: void ausgeben ( F u n k t i o n f , double x ) { System . o u t . p r i n t l n ( f . auswerten ( x ) ) ; } 7 / 11

Gliederung

1 Einfuhrung ¨

2 Definition einer Schnittstelle

3 Implementierung einer Schnittstelle

8 / 11

Implementierung einer Schnittstelle • Eine Klasse kann eine (oder mehrere) Schnittstellen

implementieren.

Syntax class Implementierung implements S c h n i t t s t e l l e { . . . }

Bemerkung: • Dabei mussen normalerweise alle Methoden der ¨

Schnittstellen implementiert werden. • Werden nicht alle Methoden implementiert, dann ist die

Klasse abstrakt und muss durch abstract class gekennzeichnet werden. • Eine Klasse darf auch mehrere Schnittstellen

implementieren, diese werden mit Komma aufgelistet. 9 / 11

Beispiel Funktion, Fortsetzung Beispiel class Xhoch3 implements F u n k t i o n { double auswerten ( double x ) { r e t u r n x∗ x∗ x ; } }

Verwendung z.B. in main:

Beispiel Funktion f ; / / nur Referenz / / I n s t a n z e i n e r Implementierung der S c h n i t t s t e l l e b i l d e n f = new Xhoch3 ( ) ; / / Typen werden angepasst double d i f f e r e n z = f . auswerten ( 2 ) − f . auswerten ( 1 ) ; ausgeben ( f , 5 ) ; / / Methode ausgeben f u¨ r f a u f r u f e n 10 / 11

Eigenschaften

• Alle Methoden einer Schnittstelle sind public abstract.

Dies braucht nicht explizit angegeben zu werden. • Widerspruchliche Angaben wie z.B. final oder private ¨

sind verboten. • Alle Datenfelder einer Schnittstelle sind public static

final. Dies braucht ebenfalls nicht explizit angegeben zu werden. • Angaben wie z.B. private oder protected sind verboten.

11 / 11