Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
DVG2 - 01 - Klassen und Objekte
Wiederholung 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 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! 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. 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. DVG Klassen und Objekte
6
beliebiger primitiver Datentyp beliebiger Referenztyp Felder Klassen
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} 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. 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 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 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 (...); 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. 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. 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! 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. 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 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 } DVG Klassen und Objekte
17
this ist nicht verfügbar.
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. DVG Klassen und Objekte
18
Innere Klassen Strukturierungsmittel
Möglichkeit Sichtbarkeiten zu beeinflussen besondere Möglichkeiten bei der Vererbung DVG Klassen und Objekte
19
private, protected, public u.s.w.
DVG Klassen und Objekte
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.