Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DVG2 - 01 - Klassen und Objekte Klassen und Objekte Wiederholung.

Ähnliche Präsentationen


Präsentation zum Thema: "DVG2 - 01 - Klassen und Objekte Klassen und Objekte Wiederholung."—  Präsentation transkript:

1 DVG Klassen und Objekte Klassen und Objekte Wiederholung

2 DVG Klassen und Objekte 2 Klassen-Definition in JAVA Klassendefinition bestehen aus –Klassenkopf Name der Klasse Kennzeichnung als abstrakte Klasse (abstract) Kennzeichnung als finale Klasse (final) Modifizierer (public) Ableitung von anderen Klassen (extends) Realisierung von Interfaces (implements) –Klassenrumpf Attribute (Eigenschaften, Daten) statische Initialisierer Konstruktoren (initialisiert ein Objekt der Klasse) Methoden (Schnittstellen, Prozeduren, Funktionen) interne Klassen

3 DVG Klassen und Objekte 3 Klassenkopf [public] [final] [abstract] class Bezeichner [extends Klasse] [implements Interface,...,Interface] public : Die Klasse ist für alle anderen Klassen sichtbar und verwendbar. Wenn nicht angegeben, ist die Klasse nur im selben package sichtbar und verwendbar (in C++ friendly). final: Von der Klasse können keine weiteren Klassen abgeleitet werden. abstract: Die Klasse enthält nicht vollständig definierte (abstrakte) Methoden. Es können keine Objekte von dieser Klasse erzeugt werden. final und abstract können nicht gleichzeitig verwendet werden!

4 DVG Klassen und Objekte 4 extends: Die Klasse erweitert eine bekannte Klasse. z.B.: –public class Fahrzeug {..... } –public class Lastkraftwagen extends Fahrzeug {......} –Lastkraftwagen ist eine Spezialisierung der Klasse Fahrzeug implements: Die Klasse implementiert ggf. mehrere Schnittstellen (interface) Interface sind (abstrakte) Klassen, die ausschließlich abstrakte Methoden enthalten.

5 DVG Klassen und Objekte 5 Attribute [Modifizierer] [final] Typ [ []...[] ] name [ = Initialisierer] ; Modifizierer : public, private, protected public : Daten sind aus allen anderen Klassen heraus lesbar und schreibbar. private : Daten sind nur in der Klasse lesbar und schreibbar, in der sie definiert sind. protected : Daten sind lesbar und schreibbar in –Klassen die aus der Klasse abgeleitet wurden –Klassen die zum selben Package gehören keine Angabe : Daten sind nur in allen Klassen lesbar und schreibbar die zum selben Package gehören.

6 DVG Klassen und Objekte 6 final : Daten können nie verändert werden und behalten immer den Wert der Initialisierung (Konstanten). Typ –beliebiger primitiver Datentyp –beliebiger Referenztyp Felder Klassen []... [] : Kennzeichnung für n-dimensionale Felder Initialisierer –beliebiger Ausdruck –Feldinitialisierer : {Initialisierer,..., Initialisierer}

7 DVG Klassen und Objekte 7 Methoden [Modifizierer] [final] [abstract] Typ Name ( [formaleParameterliste] ) [ []...[] ] [throws Ausnahme,...,Ausnahme] Block Modifizierer : public, private, protected public : Methoden sind aus allen anderen Klassen heraus benutzbar. private : Methoden sind nur in der Klasse benutzbar in der sie enthalten sind. protected : Methoden sind benutzbar in –Klassen die aus der Klasse abgeleitet wurden –Klassen die zum selben Package gehören keine Angabe : Methoden sind nur in allen Klassen benutzbar die zum selben Package gehören.

8 DVG Klassen und Objekte 8 final: Methoden können nie verändert werden. abstract: Von der Methode sind nur die Schnittstellen (Typ, Name, Parameterliste,...) definierte, aber nicht der Körper. Damit muss die gesamte Klasse als abstract definiert werden. Von der Klasse können keine Objekte erzeugt werden. Typ: Typ des Wertes den die Methode zurückgibt (return-Anweisung) –beliebiger primitiver Datentyp –beliebiger Referenztyp Felder Klassen –void wenn die Methode keinen Wert zurückgibt

9 DVG Klassen und Objekte 9 formaleParameterliste: Typ Name,...,Typ Name Die Klammern () müssen auch angegeben werden, wenn die Parameterliste leer ist! []... [] : Kennzeichnung für n-dimensionale Felder throws: Liste der Ausnahmen, die in der Methode eintreten können und nicht behandelt werde, die also nach außen gereicht werden. Block: –{ Anweisungsfolge } bei nicht-abstrakten Methoden –; bei abstrakten Methoden

10 DVG Klassen und Objekte 10 Konstruktoren [Modifizierer] Name ( [formaleParameterliste] ) [throws Ausnahme,...,Ausnahme] Rumpf Modifizierer : public, private, protected Modifizierer, formaleParameterliste, throws : wie bei Methoden Name ist der Name der Klasse kein Typ, auch nicht void ! Wenn kein Konstruktor definiert wird, wird der leere Konstruktor Name(){} automatisch generiert. Konstruktoren können überladen werden. Konstruktoren werden bei der Erzeugung (Instanziierung) von Objekten aufgerufen –Name obj = new Name (...);

11 DVG Klassen und Objekte 11 Das Schlüsselwort this Mit Hilfe von this kann man sich auf das aktuelle Objekt beziehen. –this: Referenz auf das aktuelle Objekt –this(...): Konstruktor der aktuellen Klasse. Kann in einem Konstruktor als erste Anweisung aufgerufen werden. –this.name: Zugriff auf überdeckte Attribute.

12 DVG Klassen und Objekte 12 Das Schlüsselwort super Mit Hilfe des Schlüsselwortes super kann man sich auf die Klasse beziehen aus der die aktuelle Klasse abgeleitet wurde (Superklasse). –super(...): Konstruktor der Superklasse. Kann in einem Konstruktor als erste Anweisung aufgerufen werden. Wichtig, da Konstruktoren nicht vererbt werden können. –super.name: Zugriff auf Attribute und Methoden der Superklasse. Falls in der direkten Superklasse kein passendes Attribut bzw. Methode gefunden wird, wird in deren Superklasse gesucht u.s.w.

13 DVG Klassen und Objekte 13 Der Operator instanceof Objekt instanceof Klasse Wert : boolean true : Objekt ist eine Instanz von Klasse oder einer direkten oder indirekten Subklasse von Klasse. false : sonst (obj instanceof Object) ist immer true für jedes Objekt obj Wichtig: Zuerst die zuletzt abgeleitete Klasse testen!

14 DVG Klassen und Objekte 14 Die Methode finalize [Modifizierer] void finalize () [throws Ausnahme,...,Ausnahme] Rumpf Modifizierer : public, private, protected Die Methode finalize wird aufgerufen, bevor ein Objekt durch Garbage-Collection vernichtet wird. Dient dem Aufräumen z.B.: –Schließen von Dateien –Setzen von Zählern –Freigabe von Ressourcen, die von in anderen Sprachen (z.B. C, C++) geschriebenen Programmen angefordert wurden.

15 DVG Klassen und Objekte 15 Statische Komponenten Alle Programme sind Klassen –Klassen sind nur Definitionen –Wer sagt also was abgearbeitet werden soll? Es gibt Konstanten und Methoden, die allgemein verfügbar sein sollen und nicht an Objekte gebunden sein sollten. Z.B.: –Mathematische Konstanten: Pi= ; E= –Physikalische Konstanten: c km/s –Mathematische Funktionen: sin(x), cos(x),... Bestimmte Daten sollten eher an die Klasse als an die Objekte gebunden sein. Z.B. –Zähler wie viele Punkte instanziiert wurden. –Statusanzeiger

16 DVG Klassen und Objekte 16 Statische Attribute und Methoden –Modifizierer static, sonst wie andere Attribute und Methoden, z.B.: –private static int Anzahl = 0; –public static float max(float x, float y) { return x>y?x:y; } Statische Initialisierer –static {.... Beliebige Anweisungen }

17 DVG Klassen und Objekte 17 Statische Attribute und Methoden werden durch Klassenname.Attribut bzw. Klassenname.Methode oder durch Objektname.Attribut bzw. Objektname.Methode aufgerufen. Alle statischen Komponenten einer Klasse werden abgearbeitet, sobald das erste Mal auf eine statische Komponente der Klasse zugegriffen wird bzw. das erste Objekt der Klasse instanziiert wird. Nicht-statische Komponenten werden bei der Instaziierung eines Objektes der Klasse abgearbeitet. Es werden alle statischen Komponenten in der Reihenfolge ihres Auftretens abgearbeitet. Statische Komponenten werden nur einmal eingerichtet, unabhängig von der Anzahl der Objekte die von dieser Klasse instanziiert werden. In statischen Komponenten können nur andere statische Komponenten verwendet werden. this ist nicht verfügbar.

18 DVG Klassen und Objekte 18 Innere Klassen Strukturierungsmittel Möglichkeit Sichtbarkeiten zu beeinflussen besondere Möglichkeiten bei der Vererbung

19 DVG Klassen und Objekte 19 private, protected, public u.s.w.


Herunterladen ppt "DVG2 - 01 - Klassen und Objekte Klassen und Objekte Wiederholung."

Ähnliche Präsentationen


Google-Anzeigen