Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
|
|
- Kasimir Heintze
- vor 7 Jahren
- Abrufe
Transkript
1 Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
2 Übersicht 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen 5 static geschachtelte Klassen und Schnittstellen G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
3 Einführung Innere Klassen sind geschachtelte Klassen, d.h. eine Klasse wird in einer anderen deklariert. Das bringt die folgenden Vorteile mit sich: zusammengehörige Klassen werden zusammengefasst, G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
4 Einführung Innere Klassen sind geschachtelte Klassen, d.h. eine Klasse wird in einer anderen deklariert. Das bringt die folgenden Vorteile mit sich: zusammengehörige Klassen werden zusammengefasst, die Sichtbarkeit wird kontrolliert, G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
5 Einführung Innere Klassen sind geschachtelte Klassen, d.h. eine Klasse wird in einer anderen deklariert. Das bringt die folgenden Vorteile mit sich: zusammengehörige Klassen werden zusammengefasst, die Sichtbarkeit wird kontrolliert, Namenskonflikte mit anderen Objekten im gleichem Paket werden vermieden. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
6 Einführung Innere Klassen sind geschachtelte Klassen, d.h. eine Klasse wird in einer anderen deklariert. Das bringt die folgenden Vorteile mit sich: zusammengehörige Klassen werden zusammengefasst, die Sichtbarkeit wird kontrolliert, Namenskonflikte mit anderen Objekten im gleichem Paket werden vermieden. Geschachtelte Klassen können unabhängig vom Modifizierer gegenseitig auf ihre Komponenten und Methoden zugreifen. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
7 Einführung Innere Klassen sind geschachtelte Klassen, d.h. eine Klasse wird in einer anderen deklariert. Das bringt die folgenden Vorteile mit sich: zusammengehörige Klassen werden zusammengefasst, die Sichtbarkeit wird kontrolliert, Namenskonflikte mit anderen Objekten im gleichem Paket werden vermieden. Geschachtelte Klassen können unabhängig vom Modifizierer gegenseitig auf ihre Komponenten und Methoden zugreifen. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
8 Element-Klassen Die innere Klasse wird bei den Elementen der äußeren Klasse deklariert. Die Klassennamen müssen sich unterscheiden. Die innere Klasse benötigt eine Instanz der äußeren Klasse. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
9 Element-Klassen Die innere Klasse wird bei den Elementen der äußeren Klasse deklariert. Die Klassennamen müssen sich unterscheiden. Die innere Klasse benötigt eine Instanz der äußeren Klasse. Der Modifizierer der inneren Klasse ist frei wählbar, d.h. er hängt nicht vom Modifizierer der äußeren Klasse ab. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
10 Element-Klassen Die innere Klasse wird bei den Elementen der äußeren Klasse deklariert. Syntax Die Klassennamen müssen sich unterscheiden. Die innere Klasse benötigt eine Instanz der äußeren Klasse. Der Modifizierer der inneren Klasse ist frei wählbar, d.h. er hängt nicht vom Modifizierer der äußeren Klasse ab. class Aussen { // Daten und Methoden class Innen { // Daten und Methoden } } G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
11 Element-Klassen Die innere Klasse wird bei den Elementen der äußeren Klasse deklariert. Syntax Die Klassennamen müssen sich unterscheiden. Die innere Klasse benötigt eine Instanz der äußeren Klasse. Der Modifizierer der inneren Klasse ist frei wählbar, d.h. er hängt nicht vom Modifizierer der äußeren Klasse ab. class Aussen { // Daten und Methoden class Innen { // Daten und Methoden } } G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
12 Element-Klassen Bei der Kompilierung legt der Kompiler für die innere Klasse eine separate class-datei an, im obigen Beispiel: Achtung Aussen$Innen.class Elementklassen dürfen keine statischen Komponenten, Methoden oder Klassen enthalten, solange die Elementklasse nicht selber static ist! G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
13 Element-Klassen Bei der Kompilierung legt der Kompiler für die innere Klasse eine separate class-datei an, im obigen Beispiel: Achtung Aussen$Innen.class Elementklassen dürfen keine statischen Komponenten, Methoden oder Klassen enthalten, solange die Elementklasse nicht selber static ist! G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
14 Lokale Klassen Lokale Klassen werden in einem Block in einer Methode der äußeren Klasse deklariert. Die Klassennamen müssen sich unterscheiden. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
15 Lokale Klassen Lokale Klassen werden in einem Block in einer Methode der äußeren Klasse deklariert. Die Klassennamen müssen sich unterscheiden. Es sind keine Modifizierer sowie statische Komponenten erlaubt. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
16 Lokale Klassen Lokale Klassen werden in einem Block in einer Methode der äußeren Klasse deklariert. Die Klassennamen müssen sich unterscheiden. Es sind keine Modifizierer sowie statische Komponenten erlaubt. Zugriffe auf lokale Konstanten der äußeren Klasse sind erlaubt, dabei müssen die Konstanten allerdings vor der inneren Klasse definiert sein, Zugriffe auf lokale Variablen der äußeren Klasse sind hingegen verboten (Bei der Kompilierung wird eine separate class Datei erzeugt, die eine Kopie der lokalen Variablen enthält.). G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
17 Lokale Klassen Lokale Klassen werden in einem Block in einer Methode der äußeren Klasse deklariert. Achtung Die Klassennamen müssen sich unterscheiden. Es sind keine Modifizierer sowie statische Komponenten erlaubt. Zugriffe auf lokale Konstanten der äußeren Klasse sind erlaubt, dabei müssen die Konstanten allerdings vor der inneren Klasse definiert sein, Zugriffe auf lokale Variablen der äußeren Klasse sind hingegen verboten (Bei der Kompilierung wird eine separate class Datei erzeugt, die eine Kopie der lokalen Variablen enthält.). Ist die Methode statisch, so darf in der inneren Klasse nur auf statische Elemente der äußeren Klasse zugegriffen werden, andernfalls auf alle! G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
18 Lokale Klassen Lokale Klassen werden in einem Block in einer Methode der äußeren Klasse deklariert. Achtung Die Klassennamen müssen sich unterscheiden. Es sind keine Modifizierer sowie statische Komponenten erlaubt. Zugriffe auf lokale Konstanten der äußeren Klasse sind erlaubt, dabei müssen die Konstanten allerdings vor der inneren Klasse definiert sein, Zugriffe auf lokale Variablen der äußeren Klasse sind hingegen verboten (Bei der Kompilierung wird eine separate class Datei erzeugt, die eine Kopie der lokalen Variablen enthält.). Ist die Methode statisch, so darf in der inneren Klasse nur auf statische Elemente der äußeren Klasse zugegriffen werden, andernfalls auf alle! G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
19 Beispiel class Aussen { private int var1; public void methode () { int var2; final int konst1 = 333; class Innen { // innere Klasse Innen () { // Konstruktor System.out.println(var1); // ok System.out.println(var2); // Fehler! System.out.println(konst1); // ok } } } new Innen(); // Konstruktor-Aufruf } public static void main(string[] s) { Aussen Referenz = new Aussen (); Referenz.methode (); } G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
20 Anonyme Klassen Manchmal werden Klassen (Subklassen, Implementierungen einer Schnittstelle) nur für eine einzige Instanz benötigt. Beispiel... class MeineKlasse extends Vorlage { void info() {... } // Methode ueberschreiben } MeineKlasse m = new MeineKlasse (); // einmalig Instanz bilden... G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
21 Anonyme Klassen Manchmal werden Klassen (Subklassen, Implementierungen einer Schnittstelle) nur für eine einzige Instanz benötigt. Beispiel... class MeineKlasse extends Vorlage { void info() {... } // Methode ueberschreiben } MeineKlasse m = new MeineKlasse (); // einmalig Instanz bilden... G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
22 Anonyme Klassen Dies kann einfacher mit einer anonymen Klasse formuliert werden. Anonyme Klassen sind lokal und verzichten auf einen Bezeichner, also einen Namen für die Klasse. Beispiel... Vorlage m = new Vorlage() {void info() {... }};... Es wird eine abgeleitete Klasse der Klasse Vorlage gebildet und die Methode info() ersetzt. Weiterhin wird eine Instanz der anonymen Klasse erzeugt, die den Typ der Superklasse besitzt. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
23 Anonyme Klassen Dies kann einfacher mit einer anonymen Klasse formuliert werden. Anonyme Klassen sind lokal und verzichten auf einen Bezeichner, also einen Namen für die Klasse. Beispiel... Vorlage m = new Vorlage() {void info() {... }};... Es wird eine abgeleitete Klasse der Klasse Vorlage gebildet und die Methode info() ersetzt. Weiterhin wird eine Instanz der anonymen Klasse erzeugt, die den Typ der Superklasse besitzt. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
24 Anonyme Klassen Anonyme Klassen können nur mit Schnittstellen bzw. Basisklassen gebildet werden. Definitionen eigener neuer Methoden sind nicht sinnvoll, da diese nicht angesprochen werden können. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
25 Anonyme Klassen Anonyme Klassen können nur mit Schnittstellen bzw. Basisklassen gebildet werden. Definitionen eigener neuer Methoden sind nicht sinnvoll, da diese nicht angesprochen werden können. Es kann kein (expliziter) Konstruktor gebildet werden. Damit ist der Zugriff auf den super-konstruktor ebenfalls nicht möglich. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
26 Anonyme Klassen Anonyme Klassen können nur mit Schnittstellen bzw. Basisklassen gebildet werden. Definitionen eigener neuer Methoden sind nicht sinnvoll, da diese nicht angesprochen werden können. Es kann kein (expliziter) Konstruktor gebildet werden. Damit ist der Zugriff auf den super-konstruktor ebenfalls nicht möglich. Es ist insgesamt nur eine Instanz möglich. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
27 Anonyme Klassen Anonyme Klassen können nur mit Schnittstellen bzw. Basisklassen gebildet werden. Definitionen eigener neuer Methoden sind nicht sinnvoll, da diese nicht angesprochen werden können. Es kann kein (expliziter) Konstruktor gebildet werden. Damit ist der Zugriff auf den super-konstruktor ebenfalls nicht möglich. Es ist insgesamt nur eine Instanz möglich. Der Kompiler erzeugt für diese Instanz eine eigene class-datei (an den Namen der äußeren Klasse wird eine fortlaufende Nummer angehängt, also z.b. Aussen$1.class). G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
28 Anonyme Klassen Achtung Anonyme Klassen können nur mit Schnittstellen bzw. Basisklassen gebildet werden. Definitionen eigener neuer Methoden sind nicht sinnvoll, da diese nicht angesprochen werden können. Es kann kein (expliziter) Konstruktor gebildet werden. Damit ist der Zugriff auf den super-konstruktor ebenfalls nicht möglich. Es ist insgesamt nur eine Instanz möglich. Der Kompiler erzeugt für diese Instanz eine eigene class-datei (an den Namen der äußeren Klasse wird eine fortlaufende Nummer angehängt, also z.b. Aussen$1.class). Es sind keine statische Komponenten erlaubt! G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
29 Anonyme Klassen Achtung Anonyme Klassen können nur mit Schnittstellen bzw. Basisklassen gebildet werden. Definitionen eigener neuer Methoden sind nicht sinnvoll, da diese nicht angesprochen werden können. Es kann kein (expliziter) Konstruktor gebildet werden. Damit ist der Zugriff auf den super-konstruktor ebenfalls nicht möglich. Es ist insgesamt nur eine Instanz möglich. Der Kompiler erzeugt für diese Instanz eine eigene class-datei (an den Namen der äußeren Klasse wird eine fortlaufende Nummer angehängt, also z.b. Aussen$1.class). Es sind keine statische Komponenten erlaubt! G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
30 static geschachtelte Klassen und Schnittstellen Statisch geschachtelte Klassen bzw. Schnittstellen verhalten sich wie Elementklassen, sind jedoch zusätzlich mit dem Schlüsselwort static versehen. Sie besitzen keinen Bezug zu einer Instanz und sind daher sogenannte Top-Level Klassen bzw. Top-Level Schnittstellen. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
31 static geschachtelte Klassen und Schnittstellen Statisch geschachtelte Klassen bzw. Schnittstellen verhalten sich wie Elementklassen, sind jedoch zusätzlich mit dem Schlüsselwort static versehen. Sie besitzen keinen Bezug zu einer Instanz und sind daher sogenannte Top-Level Klassen bzw. Top-Level Schnittstellen. Von außen über die Klassennamen Aussen.Innen ansprechbar. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
32 static geschachtelte Klassen und Schnittstellen Statisch geschachtelte Klassen bzw. Schnittstellen verhalten sich wie Elementklassen, sind jedoch zusätzlich mit dem Schlüsselwort static versehen. Sie besitzen keinen Bezug zu einer Instanz und sind daher sogenannte Top-Level Klassen bzw. Top-Level Schnittstellen. Von außen über die Klassennamen Aussen.Innen ansprechbar. Außer beim Namen besitzt diese Klassengattung keine echte Schachtelung. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
33 static geschachtelte Klassen und Schnittstellen Statisch geschachtelte Klassen bzw. Schnittstellen verhalten sich wie Elementklassen, sind jedoch zusätzlich mit dem Schlüsselwort static versehen. Sie besitzen keinen Bezug zu einer Instanz und sind daher sogenannte Top-Level Klassen bzw. Top-Level Schnittstellen. Von außen über die Klassennamen Aussen.Innen ansprechbar. Außer beim Namen besitzt diese Klassengattung keine echte Schachtelung. Eine statisch geschachtelte Schnittstelle darf eine Klasse enthalten, welche (implizit) statisch ist und daher eine Top-Level Klasse ist. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
34 static geschachtelte Klassen und Schnittstellen Statisch geschachtelte Klassen bzw. Schnittstellen verhalten sich wie Elementklassen, sind jedoch zusätzlich mit dem Schlüsselwort static versehen. Sie besitzen keinen Bezug zu einer Instanz und sind daher sogenannte Top-Level Klassen bzw. Top-Level Schnittstellen. Von außen über die Klassennamen Aussen.Innen ansprechbar. Außer beim Namen besitzt diese Klassengattung keine echte Schachtelung. Eine statisch geschachtelte Schnittstelle darf eine Klasse enthalten, welche (implizit) statisch ist und daher eine Top-Level Klasse ist. G. Bohlender (IANM UNI Karlsruhe) Innere Klassen / 11
Einstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrGeschachtelte Klassen
Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrObjektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
MehrEinstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrEinstieg in die Informatik mit Java
1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
Mehr4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrImplementieren von Klassen
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
MehrEinstieg in die Informatik mit Java
1 / 28 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick: Variablenarten 2 Lokale Variablen 3 Lokale Variablen
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Klassen als Datenstruktur 2 Vereinbarung von
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrZeichenketten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java. 16.
Zeichenketten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16. Mai 2007 G. Bohlender (IANM UNI Karlsruhe) Zeichenketten 16. Mai 2007 1
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrHüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 25. Juni 2007 G. Bohlender (IANM UNI Karlsruhe) Hüllklassen 25. Juni 2007 1 / 5 Grunddatentypen
MehrTh. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen
Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrKlassen mit Instanzmethoden
Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Klassenvariablen, Klassenmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrEinstieg in die Informatik mit Java
1 / 27 Einstieg in die Informatik mit Java Methoden / Funktionen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick 2 Zweck von Methoden 3 Methodendefinition
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrTag 7 Repetitorium Informatik (Java)
Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrKlassen als Datenstrukturen
Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrProgrammiertechnik Objektorientierung
Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrEinstieg in die Informatik mit Java
1 / 21 Einstieg in die Informatik mit Java Felder, eindimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 21 1 Überblick: Was sind Felder? 2 Vereinbarung von Feldern
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Zeichenketten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrEreignisverwaltung und Layout-Typen
Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Ereignisverwaltung
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
Mehr5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte
5 Vererbung Subklassen, Superklassen, Pakete Zugriffsrechte Wiederverwendung von Code Konventionelle Methode: Wähle einen Quelltext, der ein ähnliches Problem bearbeitet und passe diesen Text auf das neue
MehrObjektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
MehrExkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm
Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen
MehrArten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrSwing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.06.07 G. Bohlender (IANM UNI Karlsruhe) Swing 27.06.07 1 / 10 Übersicht 1 Einführendes
MehrDeklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse
Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten
MehrKlassenvariablen, Klassenmethoden
Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrSchöner Programmieren
Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 20.11.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 20.11.07
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrProgrammieren I. Kapitel 10. Spezielle Features
Programmieren I Kapitel 10. Spezielle Features Kapitel 10: Spezielle Features Ziel: Besonderheiten von Java bei OO Konzepten statische Attribute und Methoden innere, verschachtelte und lokale Klassen anonyme
MehrStatische und Nichtstatische Methoden Properties/ Eigenschaften
Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Zeichenketten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick: Zeichenketten 2 Zeichenketten 3 Erzeugen von Zeichenketten
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
MehrC++ Klassen weitere Funktionen
C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
MehrSchöner Programmieren
Schöner Programmieren Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 30.05.07 G. Bohlender (IANM UNI Karlsruhe) Schöner Programmieren 30.05.07
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
MehrModularisierung in Java: Pakete Software Entwicklung 1
Modularisierung in Java: Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Um zusammengehörende Klassen, Interfaces, etc. gemeinsam zu verwalten, Sichtbarkeiten einzugrenzen und
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrVererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
MehrVererbung. Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
MehrEinstieg in die Informatik mit Java
1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrAllgemeines - Prinzipien
OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrPhilipp Güttler Objektorientierung und komplexe Datentypen
Philipp Güttler 23.04.2008 Objektorientierung und komplexe Datentypen Seite 2 Was bedeutet objekt-orientiert? Programmierung ist die Umsetzung von Sachverhalten und Aufgaben Zusammenfassen und Aufteilen
Mehr