Interfaces - BFH-TI Staff

Werbung
Berner Fachhochschule
Technik und Informatik
Einführung in
die OOP mit
Java
Unterlagen zum Modul „OOP mit Java“
V 3.0
© 2007 by WBR1/HTI
© 2011 by MOU2/TI
Einführung in die OOP
WBR1&MOU2/BFH-TI
V3.0 © 2011 by
Berner Fachhochschule
Technik und Informatik
Interfaces - Eigenschaften
Interfaces bestehen aus abstrakten Methoden und Konstanten.
• Alle Attribute eines Interfaces
sind konstant (final) und `public`
• Alle Methoden eines Interfaces
sind `public`
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-2
Berner Fachhochschule
Technik und Informatik
Syntax der Interface-Klasse
public interface Printer
{
int attribute1 = 100;
void methode1();
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-3
Berner Fachhochschule
Technik und Informatik
Interfaces - Eigenschaften
Interfaces definieren Schnittstellen
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-4
Berner Fachhochschule
Technik und Informatik
Interfaces - Eigenschaften
In einer Klasse, welche ein Interface implementiert:
• müssen alle Methoden dieses Interfaces implementiert
werden
ODER
• die Klasse muss als abstract bezeichnet werden
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-5
Berner Fachhochschule
Technik und Informatik
Syntax der Klasse, welche das Interface
implementiert
public class Name implements
Interface-Name1, Interface-Name2
{
// Implementation des Interfaces
void methode1()
{
...
}
...
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-6
Berner Fachhochschule
Technik und Informatik
Interfaces - Eigenschaften
Eine Klasse kann mehrere Interfaces implementieren.
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-7
Berner Fachhochschule
Technik und Informatik
Interfaces - Eigenschaften
Interfaces können von andern Interfaces erben
public interface ExportData
extends ImportData
{
void export();
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-8
Berner Fachhochschule
Technik und Informatik
Beispiel für ein Interface
abstract
GeometrischesObjekt
x_coord
y_coord
isVisible
GeometrischesObjekt()
setCoord()
draw()
move()
area()
Rechteck
width
height
Rechteck()
area()
getWidth()
getHeight()
Einführung in die OOP
<Interface>
Printer
style
print()
feedPaper()
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-9
Berner Fachhochschule
Technik und Informatik
Codebeispiel Definition Interface
// Interface Definition
public interface Printer
{
public final int style= 11;
public void print(String str);
public void feedPaper();
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-10
Berner Fachhochschule
Technik und Informatik
Codebeispiel Implementation Interface
public class Rechteck extends
GeometrischesObjekt implements Printer
{
...
// Interface implementation
public void print(String str)
{
System.out.println(str);
}
public void feedPaper(){...};
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-11
Berner Fachhochschule
Technik und Informatik
Interfaces vs. Abstrakte Klassen
• Eine abstrakte Klasse ist eine unvollständige Klasse – ein
Interface ist eine Art Vorschrift für ein bestimmtes Verhalten
einer Klasse
• Eine Klasse kann mehrere Interfaces implementieren aber
nur von einer Oberklasse erben
• In Interfaces sind alle Methoden „public“, bei abstrakten
Klassen „public“ oder „protected“
• In Interfaces sind alle Attribute „public“ und „final“, bei
abstrakten Klassen sind bei Attributen alle Zugriffsmodifier
möglich.
• Weder Interfaces noch abstrakte Klassen können instanziert
werden
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-12
Berner Fachhochschule
Technik und Informatik
Packages
• Ein Package (Paket) ist eine Sammlung
verschiedener Klassen mit ähnlichen Aufgaben.
• Sie schaffen übersichtliche Strukturen
• Sie ermöglichen die Identifikation von Klassen in sehr
grossen Projekten
• Sie steuern die Sichtbarkeit von Klassen, Methoden
und Attributen in einem Projekt
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-13
Berner Fachhochschule
Technik und Informatik
Verwendung und Import
•
•
Bevor sie eine Klasse in ihrem Code verwenden
können, müssen sie angeben, aus welchem
Package sie stammt.
Dazu gibt es folgende Möglichkeiten:
1) Angabe des vollständigen Namens inklusive
Package und Subpackage.
2) Einbindung der Klasse am Anfang des Codes mit
import.
3) Einbindung des ganzen Packages am Anfang des
Codes, ebenfalls mit import.
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-14
Berner Fachhochschule
Technik und Informatik
Angabe des vollständigen Namens
public class Datum01
{
public static void main(String[] args)
{
java.util.GregorianCalendar date =
new java.util.GregorianCalendar();
System.out.println(date.getTime());
}
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-15
Berner Fachhochschule
Technik und Informatik
Einbindung der Klasse am Anfang des Codes
// Import Klasse aus Package
import java.util.GregorianCalendar;
public class Datum02
{
public static void main(String[] args)
{
GregorianCalendar date =
new GregorianCalendar();
System.out.println(date.getTime());
}
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-16
Berner Fachhochschule
Technik und Informatik
Einbindung des Package am Anfang des Codes
// Import Package
import java.util.*;
public class Datum03
{
public static void main(String[] args)
{
GregorianCalendar date =
new GregorianCalendar();
System.out.println(date.getTime());
}
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-17
Berner Fachhochschule
Technik und Informatik
Erstellen eigener Packages
package paket1;
public class Test_A
{
public void sayHello()
{
System.out.println("My name is Bond");
}
}
Einführung in die OOP
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-18
Berner Fachhochschule
Technik und Informatik
Beispiel eigenes Package
Eclipse
Filesystem
Einführung in die OOP
Editor
V3.0 © 2011 by WBR1&MOU2/BFH-TI
Folie 3-19
Herunterladen