Implementieren von Klassen

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Objekte und Arbeitsspeicher
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Einführung in die Programmierung mit Java
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
EPROG Tutorium #6 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
Programmiervorkurs WS 2014/15 Instanzmethoden
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
OOP II.
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Die Struktur einer Java-Klasse
Grundkurs Informatik 11-13
November 18 Informatik Kurse
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Polymorphie Überladen
Ausnahmen Exceptions Definition Ausnahmen erzeugen Ausnahmen abfangen
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
Interfaces Definition von Interfaces Verwendung von Interfaces
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein.
«Delegierter» Methoden Schablone Funktionszeiger
Definition Felder Konstruktor Methoden Beispiel
Grundlagen der OO-Programmierung in C#
Statische und Nichtstatische Methoden Properties / Eigenschaften
Polymorphie Überschreiben
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

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

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

Felder und Modifizierer Field, Member, Member-Variable

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 }

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.

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 }

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

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

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

Konstanten, statische Variablen

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; }

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; }

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

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; }

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

Methoden

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.

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();

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.

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)

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; }

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);

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; } }

Konstruktoren

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; } }

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( ) { } }

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( );