Implementieren von Klassen

Ähnliche Dokumente
Statische und Nichtstatische Methoden Properties/ Eigenschaften

Vererbung und Polymorphie

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Einstieg in die Informatik mit Java

7. Übung Informatik II - Objektorientierte Programmierung

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Repetitorium Informatik (Java)

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Java Einführung Methoden in Klassen

3 Objektorientierte Konzepte in Java

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

1 Klassen und Objekte

Fragen zur OOP in Java

Geschachtelte Klassen

Grundlagen der OO- Programmierung in C#

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Java Einführung Methoden. Kapitel 6

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Vererbung, Polymorphie

Vererbung & Schnittstellen in C#

Objektorientierte Programmierung und Klassen

Klassen als Datenstrukturen

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Methoden und Wrapperklassen

Exceptions und Vererbung

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Einstieg in die Informatik mit Java

C++ - Objektorientierte Programmierung Konstante und statische Elemente

JAVA - Methoden

3 Objektorientierte Konzepte in Java

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Algorithmen und Datenstrukturen II

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Einstieg in die Informatik mit Java

Objektorientierte Programmierung

Ausnahmen. Exceptions. Definition Ausnahmen erzeugen Ausnahmen abfangen Ausnahmen weiterleiten. Dr. Beatrice Amrhein

Delegatesund Ereignisse

Einführung in die Programmierung Blockkurs Java

1 Abstrakte Klassen, finale Klassen und Interfaces

Einstieg in die Informatik mit Java

Prof. W. Henrich Seite 1

Programmieren in Java

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Aufbau von Klassen. class punkt {...

Klassenvariablen, Klassenmethoden

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

Java Einführung Klassendefinitionen

Programmieren in Java

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Algorithmen und Datenstrukturen

Kapitel 10 Delegationsvariablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Vorkurs C++ Programmierung

Kapitel Was ist ein Header? Was ist ein Body? Header: public Account(String newowner, int newpin)

Konstruktor/Destruktor

5.5.8 Öffentliche und private Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Objektorientierte Programmierung Studiengang Medieninformatik

12 Abstrakte Klassen, finale Klassen und Interfaces

Einstieg in die Informatik mit Java

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Sprachkonstrukte Verzweigungen und Array-Strukturen

Javakurs für Anfänger

Wichtige Prinzipien von C#

Algorithmen und Datenstrukturen 06

Objektorientierte Programmierung Studiengang Medieninformatik

Einstieg in die Informatik mit Java

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.

6. Globalübung (zu Übungsblatt 8)

Ausgabe:

Javakurs 2013 Objektorientierung

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Javakurs für Anfänger

Programmieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden

C++ - Objektorientierte Programmierung Vererbung

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Einstieg in die Informatik mit Java

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

5.4 Klassen und Objekte

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Programmieren 2 Java Überblick

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Algorithmen und Datenstrukturen

Klassen mit Instanzmethoden

Transkript:

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

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

Felder und Modifizierer Field, Member, Member-Variable 3

Definition Ein Feld ist eine in einer Klasse deklarierte Variable. o 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; float leistung; int drehzahl; DateTime revision; } // Referenztyp // Basistyp // Basistyp // Referenztyp 4

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. 5

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; DateTime revision; // privat // privat (nur innerhalb der Klasse sichtbar) 6

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

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

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

Konstanten, statische Variablen 10

Definition und Deklaration Eine Konstante ist eine Variable o deren Wert bei der Deklaration initialisiert werden muss o und dann nicht mehr verändert werden kann. o 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; 11

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

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 13

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

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 15

Methoden 16

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. 17

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

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. 19

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

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

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

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

Konstruktoren 24

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

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

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