Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Implementieren von Klassen

Ähnliche Präsentationen


Präsentation zum Thema: "Implementieren von Klassen"—  Präsentation transkript:

1 Implementieren von Klassen
Felder, Methoden, Konstanten Dr. Beatrice Amrhein

2 Felder/Mitglieder (Field, Member, Member-Variable)
Überblick Felder/Mitglieder (Field, Member, Member-Variable) Modifizierer Konstanten Methoden

3 Felder und Modifizierer
Field, Member, Member-Variable

4 Definition Ein Feld ist eine in einer Klasse deklarierte Variable.
Die Variablen innerhalb einer Methode sind lokal, also keine Felder Ein Feld kann ein integrierter Typ (Basistyp) sein oder eine Instanz einer anderen Klasse (Referenz-Typ). class Motor { // Fields String modell; // Referenztyp float leistung; // Basistyp int drehZahl; // Basistyp DateTime revision; // Referenztyp }

5 Zugriffs-Modifizierer
Für Methoden und Felder können folgende Zugriffs-Modifizierer angegeben werden: public (öffentlich zugänglich) Auf ein öffentliches Feld kann von überall her zugegriffen werden. private (privat) Auf ein privates Feld kann nur (von Methoden) in der gleichen Klasse zugegriffen werden. protected (geschützt) Auf ein geschütztes Feld kann nur (von Methoden) in der gleichen Klasse oder in einer von dieser abgeleiteten (vererbten) Klasse zugegriffen werden. internal (intern) Auf ein internes Feld kann in der gleichen Assembly zugegriffen werden, jedoch nicht vom Code in einer anderen Assembly.

6 private, protected, public, …
Wenn der Zugriffs-Modifizierer fehlt, ist das Feld privat. Die Felder revision und drehZahl sind privat, also nur für den Gebrauch in der Klasse selbst. Das Feld leistung wird an abgeleitete Klassen vererbt. Das Felder modell ist intern und kann von allen Klassen in der gleichen Assembly gelesen und verändert werden. public class Motor { // Fields internal String modell; // nur im Assembly sichtbar protected float leistung; // geschützt, in vererbten Klassen sichtbar private int drehZahl; // privat (nur innerhalb der Klasse sichtbar) DateTime revision; // privat }

7 Default Modifizierer Wenn der Zugriffs-Modifizierer (public, protected, internal oder private) fehlt ist die Klasse internal ist das Feld private ist die Methode private

8 private, public, … Beispiel: Klasse Motor
Im Inneren der Klasse kann auf alle Felder zugegriffen werden.

9 private, public, … Von „aussen“ (zum Beispiel von der Main-Methode der Klasse Program) kann nur auf öffentliche (public) und interne (internal) Felder zugegriffen werden.

10 Konstanten, statische Variablen

11 Definition und Deklaration
Eine Konstante ist eine Variable deren Wert bei der Deklaration initialisiert werden muss und dann nicht mehr verändert werden kann. Sie wird mit dem Schlüsselwort const deklariert. public class Motor { // konstantes Feld  für alle Instanzen identisch public const String modell = "RAD-234X"; private float leistung; private int drehZahl; }

12 Speicherbild Im Speicher zeigt jedes Motor-Objekt auf den gleichen modell String. Für alle anderen Felder werden separate Werte abgelegt. public class Motor { public const String modell = "RAD-234X"; private float leistung; private int drehZahl; }

13 Eigenschaften/Benutzung von Konstanten
Der Wert einer Konstante ist für alle Objekte der Klasse identisch. Der Zugriff auf Konstanten erfolgt darum nicht über das Objekt, sondern über den Klassennamen String name = Motor.modell; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

14 Statische Variable Eine statische Variable ist eine Variable, deren Wert für alle Instanzen identisch ist. public class Motor { // statisches Feld  für alle Instanzen identisch, kann sich aber ändern (nicht konstant). public static String modell = "RAD-234X"; public float leistung; private int drehZahl; }

15 Eigenschaften von statischen Variablen
Der Wert einer statischen Variablen ist für alle Objekte der Klasse gleich. Man spricht daher auch von Klassenvariablen. Das Speicherbild sieht gleich aus, wie bei Konstanten. Der Zugriff auf statische Variablen erfolgt darum ebenfalls über den Klassennamen Motor.modell = "RX-401"; Nach dem Handbuch der .NET 4.0-Programmierung, Rolf Wenger, 2012

16 Methoden

17 Definition Die Methoden der Klasse definieren die Aktionen, die von einer Klasse ausgeführt werden können. Methoden können einen Rückgabewert liefern. Der Rückgabewert wird generiert durch die Anweisung return wert; Methoden werden in ihrer Klasse deklariert und implementiert. Die (nicht statischen) Methoden der Klasse gehören zum Objekt und haben darum Zugriff auf alle Felder (Daten) der Klasse.

18 Definition Methoden können Parameter entgegennehmen.
Die Methode enthält eine Reihe von Anweisungen. Die Anweisungen werden ausgeführt, wenn ein Programm die Methode aufruft und die erforderlichen Eingabe-Parameter übergibt. // Objekt erzeugen Person p = new Person("Peter", "Muster", 1980, 10, 25); // Methode getPersonData() der Klasse Person aufrufen. personData = p.getPersonData();

19 Methodensignaturen Die Signatur einer Methode besteht aus
einem Zugriffs-Modifizierer (public, protected, internal oder private) dem Rückgabewert dem Namen der Methode den Eingabe-Parametern Alle Methoden einer Klasse haben unterschiedliche Signaturen. Die Signaturen dürfen sich nicht nur durch den Modifizierer und den Rückgabewert unterscheiden.

20 Methodensignaturen // keine Eingabe-Parameter, String Rückgabewert public String Beschreibung() // zwei int Eingabe-Parameter, int Rückgabewert internal int MaximumWert(int a, int b) // drei float Eingabe-Parameter, float Rückgabewert private float Produkt(float a, float b, float c) // ein String[] Eingabe-Parameter, kein Rückgabewert public void Ausgabe(String[] values)

21 Implementation Methoden enthalten in einem Block { …. } eine Reihe von Anweisungen. Methoden können mehrere return Anweisungen haben. // berechne das Maximum public int Maximum(int a, int b) { if (a > b) { return a; } else { return b; } } public int Maximum(int a, int b, int c) if (a > b && a > c) { return a; } if (b > a && b > c) { return b; } else { return c; }

22 Benutzung von Methoden
Methoden werden durch die Syntax objekt.methode(parameter); aufgerufen Motor motor = new Motor("Diesel"); motor.Beschreibung(); Rechner rechner= new Rechner(); rechner.Maximum(13,21,42);

23 Aufruf von Methoden (z.B. in der Main Methode)
static void Main(string[] args) { int x = 13; int y = 21; Rechner rechner= new Rechner(); rechner.Maximum(x,y,42); } Die Werte der Aufrufparameter bestimmt die Belegung der Parameterwerte. public int Maximum(int a, int b, int c) { if (a > b && a > c) { return a; } if (b > a && b > c) { return b; } else { return c; } }

24 Konstruktoren

25 Konstruktor Eine spezielle Methode jeder Klasse/jedem Typ ist der Konstruktor. Er dient dazu, Objekte von diesem Typ herzustellen. Der Konstuktor hat immer den gleichen Namen wie die Klasse selbst. public class Motor { private String modell; // Konstruktor public Motor(String m) { modell = m; } }

26 Default Konstruktor Klassen, für die kein Konstruktor implementiert ist, haben einen automatisch erzeugten Default-Konstruktor (ohne Argumente). Der Default Konstruktor erzeugt ein Objekt der Klasse, aber initialisiert keine Felder. Man kann sich eine leere Methode ohne Argumente vorstellen. public class Motor { private String modell; // Default Konstruktor, muss nicht implementiert werden. public Motor( ) { } }

27 Benutzen des Konstruktor
Mit Hilfe des Konstruktors wird ein neues Objekt erzeugt. Das Schlüsselwort dazu heisst new // Benutzen eines Konstruktors mit Argumenten Motor motor = new Motor("Elektro"); // Benutzen des Default-Konstruktors Motor motor = new Motor( );


Herunterladen ppt "Implementieren von Klassen"

Ähnliche Präsentationen


Google-Anzeigen