5.3 Subtypen und Vererbung

Größe: px
Ab Seite anzeigen:

Download "5.3 Subtypen und Vererbung"

Transkript

1 5.3 Subtypen und Vererbung Dieser Abschnitt erläutert die Konzepte der Subtypbildung und Vererbung. Überblick: Klassifizieren von Objekten Subtypen und Schnittstellentypen Vererbung Beispiele: (Klassifikationen) Wirbeltiere Fische Lurche Reptilien Säugetiere Vögel Wale Primaten Paarhufer _ ist_ein _ (Vogel ist ein Wirbeltier) Klassifizieren von Objekten Klassifikation ist eine zentrale Grundlage der objektorientierten Modellierung und Programmierung. Recht Begriffsklärung: (Klassifikation) Klassifizieren ist eine allgemeine Technik, mit der Wissen über Begriffe, Dinge und deren Eigenschaften hierarchisch strukturiert wird. Das Ergebnis nennen wir eine Klassifikation. Öffentliches Recht Bürgerliches Recht Privatrecht Handelsrecht Urheberrecht Kirchenrecht A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 567 Figur Ellipse Vieleck Kreis Viereck Dreieck Parallelogramm Raute Rechteck Quadrat Beobachtungen zu Klassifikationen: - Sie können sich auf Objekte oder Gebiete beziehen. - Sie können baumartig oder DAG-artig sein. - Objektklassifikationen begründen ist-ein-beziehungen. - Es gibt abstrakte Klassen (ohne eigene Objekte) und nicht abstrakte Klassen Üblicherweise stehen die allgemeineren Begriffe oben, die spezielleren unten. Ziel: Anwendung der Klassifikationstechnik auf Objekte in der Software-Entwicklung. Student Person Wissenschaftl. Angestellte Angestellte Verwaltungsangestellte Klassifikation in der Softwaretechnik: Objekte lassen sich nach ihren Eigenschaften klassifizieren: - Alle Objekte mit ähnlichen Eigenschaften werden zu einer Klasse zusammen gefasst. - Die Klassen werden hierarchisch geordnet A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 569

2 Klassifikation beruht auf: - Schnittstellen der Klassen/Objekte - Verhalten/Eigenschaften der Objekte Genauer: 1. Syntaktisch: Subklassenobjekte haben im Allg. größere Schnittstellen als Superklassenobjekte (Auswirkung auf Programmiersprache) 2. Semantisch: Subklassenobjekte bieten mindestens die Eigenschaften der Superklassenobjekte. Zentraler Aspekt der OO-Programmentwicklung: Entwurf und Realisierung von Klassen- bzw. Typhierarchien. Abstraktion/Generalisierung Begriffsklärung: (Abstraktion) das Heraussondern des unter einem bestimmten Gesichtspunkt Wesentlichen vom Unwesentlichen. [Meyers großes Taschenlexikon] Abstraktion geht also vom Speziellen zum Allgemeinen. Ansatz: Für unterschiedliche Objekte bzw. Typen mit gemeinsamen Eigenschaften soll Software entwickelt werden. Beispiele: - Komponenten von Fenstersystemen (Menues, Schaltflächen, Textfelder, ) - Ein-/Ausgabeschnittstellen (Dateien, Netze, ) Erarbeite einen abstrakteren Typ, der die gemeinsamen Eigenschaften zusammenfasst und eine entsprechende Schnittstelle bereitstellt (Verkleinern der Schnittstelle). Programme, die sich auf die Schnittstelle des abstrakteren Typs abstützen, arbeiten für alle Objekte mit spezielleren Schnittstellen. Beispiel: (Gemeinsame Eigenschaften) Wir betrachten zwei Klassen mit gemeinsamen Eigenschaften: A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 571 class Student { String name; int matnr; void drucken() { System.out.println( name ); System.out.println( matnr ); Person[] p = new Person[4]; p[0] = new Student(); p[1] = new Professor(); for( i=0; i<p.length; i++ ) { p[i].drucken(); class Professor { String name; int telnr; void drucken() { System.out.println( name ); System.out.println( telnr ); dynamisches Binden Deklaration des Typs Person in Java: interface Person { ungleiche Typen Anforderung: Alle Personendaten sollen gedruckt werden. Abstraktion: - Entwickle einen Typ Person, der die Nachricht drucken versteht. - Formuliere das Drucken der Personendaten auf Basis des Typs Person Anpassen der Typen Student und Professor: class Student implements Person { // wie oben class Professor implements Person { // wie oben A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 573

3 Spezialisierung Begriffsklärung: (Spezialisierung) Spezialisierung bedeutet hier das Hinzufügen speziellerer Eigenschaften zu einem Gegenstand oder das Verfeinern eines Begriffs durch Einführen weiterer Merkmale (z.b. berufliche Spezialisierung). Spezialisierung geht also vom Allgemeinen zum Speziellen. Ansatz: Existierende Objekte bzw. Typen sollen zusätzliche Anforderungen erfüllen. Beispiele: - spezielle Komponenten für eine graphische Bedienoberfläche - Anpassung eines Buchführungssystems an die speziellen Anforderungen einer Firma Erweitere die existierenden Typen (zusätzliche Attribute & Methoden, Anpassen von Methoden). Im Allg. vergrößern sich dabei die Schnittstellen. Existierende Programme für die allgemeineren Typen arbeiten auch mit den spezielleren Typen. Programmtechnische Mittel zur Spezialisierung: - Hinzufügen von Attributen - Hinzufügen von Methoden - Anpassen, Erweitern bzw. Implementieren von Supertyp-Methoden: Überschreiben Anwenden überschriebener Methoden Beispiel: (Spezialisierung) Wir spezialisieren die Klasse Frame des AWT: package memoframe; import java.awt.* ; class MemoFrame extends Frame { private Color letzterhintergrund; public void einstellenletztenhintergrund() { setbackground( letzterhintergrund ); public void setbackground( Color c ) { letzterhintergrund = getbackground(); super.setbackground( c ); A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 575 package memoframe; public class TestMemoFrame { public static void main(string[] args) { MemoFrame f = new MemoFrame(); f.setlocation( 200, 200 ); f.setsize( 300, 200 ); f.setvisible( true ); f.setbackground( Color.red ); f.update( f.getgraphics() ); try{ Thread.sleep(4000); catch( Exception e ){ f.setbackground( Color.green ); f.update( f.getgraphics() ); try{ Thread.sleep(4000); catch( Exception e ){ f.einstellenletztenhintergrund(); f.update( f.getgraphics() ); try{ Thread.sleep(4000); catch( Exception e ){ System.exit( 0 ); Eine genaue Kenntnis der zu spezialisierenden Klasse ist meist nicht nötig. Die ererbten Eigenschaften kann man über die Methoden ansprechen. Überschreibende Methoden können die überschriebene Methode nutzen. Zwei Aspekte werden demonstriert: Subtypbeziehung: Ein MemoFrame-Objekt ist ein Frame-Objekt. Vererbung: Ein MemoFrame-Objekt erbt den größten Teil seiner Implementierung von der Klasse Frame. Zusammenfassung zu Jedes Objekt hat Schnittstelle aus Attributen und Methoden. - Objekte werden entsprechend ihrer Schnittstelle klassifiziert. - Allgemeinere Objekte haben kleinere Schnittstelle als speziellere Objekte A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 577

4 - Abstraktion/Generalisierung erlaubt es, Typen zu deklarieren, die die relevante Gemeinsamkeiten anderer Typen ausdrücken. - Spezialisierung erlaubt es, Typen zu deklarieren, die die Funktionalität existierender Typen erweitern. - Entwurf geeigneter Klassenhierarchien ist ein zentraler Aspekt des objektorientierten Entwurfs bzw. der objektorientierten Programmierung. Dabei sind Abstraktion und Spezialisierung sinnvoll zu kombinieren Subtypen und Schnittstellentypen Übersicht:: - Klassifikationen und Typisierung - Schnittstellentypen in Java - Subtypbildung in Java - Dynamische Methodenauswahl - Weitere Aspekte der Subtypbildung - Programmieren mit Schnittstellentypen Klassifikationen und Typisierung Typ beschreibt Eigenschaften von Werten bzw. Objekten. Annahme bisher: Kein Objekt bzw. Wert gehört zu mehr als einem (nicht-parametrisierten) Typ. Ansatz: - Realisiere jede Klasse/jeden Begriff einer Klassifikation im Programm durch einen Typ. - Führe eine partielle Ordnung (vgl. Folie 174) auf Typen ein, so dass speziellere Typen gemäß der Ordnung kleiner als ihre allgemeineren Typen sind und alle Objekte speziellerer Typen auch zu den allgemeineren gehören. Wenn S T gilt, d.h. wenn S ein Subtyp von T ist, dann gehören alle Objekte von S auch zu T. Wenn S T und S T, heißt S ein echter Subtyp von T, in Zeichen S < T. Wenn S T, dann heißt T ein Supertyp von S, und wir schreiben auch T S. Wenn S <T und es kein U mit S < U < T gibt, dann heißt S ein direkter Subtyp von T A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 579 Beispiel: (Subtypbeziehungen) In Java gibt es einen allgemeinsten Referenztyp, genannt Object. Es gilt: String Object, MemoFrame Object, MemoFrame Frame, int[] Object, Student Person, Person Object Prinzip der Substituierbarkeit: Sei S T; dann ist an allen Programmstellen, an denen ein Objekt vom Typ T zulässig ist, auch ein Objekt vom Typ S zulässig. Konsequenzen: Subtypobjekte müssen alle Eigenschaften des Supertyps aufweisen. Eine Ausdruck von einem Subtyp kann an Stellen verwendet werden, an denen in Sprachen ohne Subtypen nur ein Ausdruck von einem allgemeineren Typ zulässig wäre. Beispiel: (Substituierbarkeit) Folgende Anweisungen sind typkorrektes Java: Object ov = "Ein String ist auch ein Object"; Person[] p = p[0] new Person[4]; = new Student(); Vereinfachend betrachtet, kann man Typen als die Menge ihrer Objekte bzw. Werte auffassen. Bezeichne M(S) die Menge der Objekte vom Typ S. Für Typen S und T gilt: S T impliziert M(S) M(T) In Java wird die Subtyprelation im Wesentlichen zusammen mit den Typdeklarationen definiert. Schnittstellentypen in Java In Java gibt es zwei Arten von benutzerdefinierten Typen: - Klassentypen - Schnittstellentypen A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 581

5 Eine Klasse deklariert einen Typ und beschreibt Objekte diesen Typs, d.h. u.a. deren öffentliche Schnittstelle und Implementierung. Eine Schnittstelle deklariert einen Typ T und beschreibt die öffentliche Schnittstelle, die alle Objekte von T haben. Mögliche Implementierungen für Objekte von T liefern die echten Subtypen von T. Insbesondere lassen sich zu einem Schnittstellentyp T keine Objekte erzeugen, die nur zu T gehören. interface Druckbar { interface Farbe { byte gelb = 0; byte gruen = 1; byte blau = 2; Syntax der Schnittstellendeklaration: <Modifikatiorenlist> interface <Schnittstellenname> { [ extends <Liste von Schnittstellennamen> ] <Liste von Konstantendekl. und Methodensignaturen> Beispiel: (Schnittstellendeklaration) interface Person { String getname(); int getgeburtsdatum(); boolean hat_geburtstag( int datum ); A. Poetzsch-Heffter, Universität Kaiserslautern 582 Subtypbildung in Java Die Deklaration eines Typs T legt fest, welche direkten Supertypen T hat. Bei einer Schnittstellendeklaration T gilt Folgendes: - Gibt es keine extends-klausel, ist Object der einzige Supertyp. - Andernfalls sind die in der extends-klausel genannten Schnittstellentypen die direkten Supertypen A. Poetzsch-Heffter, Universität Kaiserslautern 583 Beispiel: (Subtyprelation bei Schnittstellen) 1. Die Typen Person, Druckbar und Farbe haben nur Object als Supertypen. 2. Der Typ Angestellte hat Person und Druckbar als direkte Supertypen: interface Angestellte extends Person, Druckbar { String getname(); int getgeburtsdatum(); int geteinstellungsdatum(); String getgehaltsklasse(); boolean hat_geburtstag( int datum ); Eine Schnittstellendeklaration erweitert also die Schnittstelle eines oder mehrerer anderer Typen. Methodensignaturen aus den Supertypen brauchen nicht nochmals aufgeführt werden (Signaturvererbung): interface Angestellte extends Person, Druckbar { int geteinstellungsdatum(); String getgehaltsklasse(); Syntax der Klassendeklartion: <Modifikatiorenlist> { [ extends <Klassenname> ] class <Klassenname> [ implements <Liste von Schnittstellennamen> ] <Liste von Attribut-, Konstruktor-, Methodendekl.> Eine Klassendeklaration T deklariert genau eine direkte Superklasse, die auch eine Supertyp ist, und ggf. mehrere weitere Supertypen: - Gibt es keine extends-klausel, ist Object die direkte Superklasse. - Andernfalls ist die in der extends-klausel genannte Klasse die direkte Superklasse. - Alle in der implements-klausel genannten Schnittstellentypen sind Supertypen. Eine Klasse erweitert die Superklasse (siehe 5.3.3). Sie implementiert die Schnittstellentypen, die in der implements-klausel angegeben sind A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 585

6 Beispiel: (Implementieren von Schnittstellen) class Student implements Person, Druckbar { private String name; private int geburtsdatum; // Form JJJJMMTT private int matrikelnr; private int semester; public Student(String n,int g,int m,int s){ name = n; geburtsdatum = g; matrikelnr = m; semester = s; public String getname() { return name; public int getgeburtsdatum() { return geburtsdatum; public int getmatrikelnr() { return matrikelnr; public int getsemester() { return semester; public void drucken() { System.out.println("Name:"+ name); System.out.println("Gdatum:"+ geburtsdatum); System.out.println("Matnr:" + matrikelnr ); System.out.println("Semzahl:"+ semester ); public boolean hat_geburtstag ( int datum ) { return (geburtsdatum%10000)==(datum%10000); Zusammenfassung: Typen & Subtyp-Ordnung: Typen: elementare Datentypen: int, char, byte,. Schnittstellentypen Klassentypen Feldtypen Subtyp-Ordnung: Referenztypen Deklaration: interface S extends T1, T2, impliziert S <T1, S <T2, Deklaration: class S extends T implements T1, T2, impliziert: S < T, S < T1, S < T2, S < T impliziert: S[] < T[] und davon die reflexive, transitive Hülle A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 587 Realisierung von Klassifikationen: Die Klassen bzw. Begriffe in einer Klassifikation können im Programm durch Schnittstellen- oder Klassentypen realisiert werden. Wir betrachten die Klassifikation bestehend aus: Person, Druckbar, Student, Angestellte, WissAngestellte und VerwAngestellte. 1. Variante: Nur die Blätter der Klassifikation (Student, Wiss- Angestellte, VerwAngestellte) werden durch Klassen realisert, alle anderen durch Schnittstellen. Druckbar Student Object WissAngestellte Person Angestellte ist Subtyp ist Subklasse VerwAngestellte Dazu die entsprechenden Typdeklarationen: interface Person { interface Druckbar { interface Angestellte extends Person,Druckbar { class Student implements Person, Druckbar { class WissAngestellte implements Angestellte { class VerwAngestellte implements Angestellte { 2. Variante: Außer des Typs Druckbar realisieren wir alle Typen durch Klassen: class Person { interface Druckbar { class Student extends Person implements Druckbar { class Angestellte extends Person implements Druckbar { class WissAngestellte extends Angestellte { class VerwAngestellte extends Angestellte { A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 589

7 Das Klassendiagramm zur 2. Variante: Dynamische Methodenauswahl Druckbar Object Person ist Subtyp ist Subklasse Die Auswertung von Ausdrücken vom (statischen) Typ T kann Ergebnisse haben, die von einem Subtyp sind. Damit stellt sich die Frage, wie Methodenaufrufe auszuwerten sind. Hier sind die charakteristischen Beispiele: Student Angestellte WissAngestellte VerwAngestellte Diskussion: Verwendung von Schnittstellen in Java: - nur wenig über den Typ bekannt - keine Festlegung von Implementierungsteilen - als Supertyp von Klassen mit mehreren Supertypen Verwendung von Klassen in Java, wenn - Objekte von dem Typ erzeugt werden sollen; - Vererbung an Subtypen ermöglicht werden soll. Beispiel: (Methodenaufruf) Welche Methode soll ausgeführt werden: 1. Auswahl zwischen Methode der Super- und Subklasse: Frame f = new MemoFrame(); f.setbackground( Color.red ); 2. Auswahl zwischen Methode verschiedener Subklassen: static void alle_drucken (Druckbar[] df) { int i; for( i =0; i<df.length; i++) { df[i].drucken(); A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 591 Begriffsklärung: (dynamische Meth.auswahl) Die auszuführende Methode zu einem Methodenaufruf: <ZielAusdr>.<methodenName>( <AktParam1>,); wird wie folgt bestimmt: 1. Werte <ZielAusdr> aus; Ergebnis ist das Zielobjekt. 2. Werte die aktuellen Parameter <AktParam1>, aus. 3. Führe die Methode mit Namen <methodenname> des Zielobjekts mit den aktuellen Parametern aus. Dieses Verfahren nennt man dynamische Methodenauswahl oder dynamisches Binden (engl. dynamic method binding). Die Unterstützung von Subtypen und dynamischer Methodenauswahl ist entscheidend für die verbesserte Wiederverwendbarkeit und Erweiterbarkeit, die durch Objektorientierung erreicht wird. Zusätzlich werden diese Aspekte auch durch Vererbung unterstützt. Beispiel: (Erweiterbarkeit) Wir gehen von einem Programm aus mit der Methode: static void alle_drucken( Druckbar[] df ) { int i; for( i =0; i<df.length; i++) { df[i].drucken(); Druckbar ist dabei Supertyp von Student, Angestellte, WissAngestellte und VerwAngestellte. Das Programm soll erweitert werden, um auch Professoren und studentische Hilfskräfte behandeln zu können. Es reicht, zwei Klassen hinzuzufügen: class Professor implements Person, Druckbar { class StudHilfskraft extends Student { Eine Änderung des ursprünglichen Programms ist NICHT nötig! A. Poetzsch-Heffter, Universität Kaiserslautern A. Poetzsch-Heffter, Universität Kaiserslautern 593

Software Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Subtyping revisited. Subtypbildung in Java: Klassen I. Subtyping und Vererbung I. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Subtyping revisited AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Subtyping revisited Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 40 Subtyping und Vererbung

Mehr

Vererbung Software Entwicklung 1

Vererbung Software Entwicklung 1 Vererbung Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Wir wiederholen in diesem Abschnitt zunächst die Grundlagen des Subtyping aus Kapitel 12. Darauf aufbauend werden wir weitere

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Vererbung Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 47 Abstraktionen auf Klassenebene

Mehr

Beispiel: (Vererbung) Vererbung. Begriffsklärung: (Vererbung) Feststellungen: Vererben von Attributen: Hinzufügen von Attributen:

Beispiel: (Vererbung) Vererbung. Begriffsklärung: (Vererbung) Feststellungen: Vererben von Attributen: Hinzufügen von Attributen: 5.3.3 Vererbung Begriffsklärung: (Vererbung) Vererbung (engl. inheritance) im engeren Sinne bedeutet, dass eine Klasse Programmteile von einer anderen übernimmt. Die erbende Klasse heißt Subklasse, die

Mehr

Objektorientierte Modellierung, Schnittstellenbildung und Klassifizierung Software Entwicklung 1

Objektorientierte Modellierung, Schnittstellenbildung und Klassifizierung Software Entwicklung 1 Objektorientierte Modellierung, Schnittstellenbildung und Klassifizierung Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Objektorientierte Modellierung Die Anforderungsanalyse führt

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Programmieren in Java

Programmieren 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

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte)

Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte) Klausur zum Kurs 1618 im Sommersemester 2002 am 10.8.2002 1 Aufgabe 1: Objekte, Klassen, Vererbung (15 Punkte) Was ist der Unterschied zwischen a) einem Objekt und einer Klasse? b) der Instanz einer Klasse

Mehr

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg... 1 1.1 Objektorientierung: Konzepte und Stärken...... 1 1.1.1 Gedankliche Konzepte der Objektorientierung....... 2 1.1.2 Objektorientierung als

Mehr

Programmieren I. Kapitel 8. Vererbung

Programmieren I. Kapitel 8. Vererbung Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte

Mehr

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor: 4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

Mehr

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

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzü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

Mehr

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

Kapitel 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

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10

Mehr

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

Mehr

Vererbung, Polymorphie

Vererbung, 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

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

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

Mehr

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Weitere 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

Mehr

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik 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

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben 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

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch 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

Mehr

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

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

1. Abstrakte Klassen

1. Abstrakte Klassen 1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

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

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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

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

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

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

Mehr

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

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

FH 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

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Modularisierung in Java: Pakete Software Entwicklung 1

Modularisierung 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

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

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

Kapitel 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

Mehr

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe. Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs 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

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 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,

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces 10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 4 und Exception Handling 2 Übersicht der heutigen Inhalte Interfaces Modifikatoren bei der Klassendefinition Exception Handling

Mehr

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Inhaltsü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)

Mehr

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 2: OOP und JAVA (Vorlesung 11) Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

Objektorientierte Programmierung. Kapitel 14: Interfaces

Objektorientierte 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/

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

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

Programmieren 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

Mehr

2. Vererbung und Kapselung

2. Vererbung und Kapselung 2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

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

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr

Pakete Software Entwicklung 1

Pakete Software Entwicklung 1 Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Organisation von Klassen- und Interface-Deklaration Java-Programme bestehen aus Typdeklarationen, d.h. Klassen- und Interface-Deklarationen.

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Mehr zur Objektorientierung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Weitere Aspekte der Objektorientierung Klassen Variablen

Mehr

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

Exkurs: 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

Mehr

Java Vererbung. Inhalt

Java 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

Mehr

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Klausurort: Aufgabe Summe

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Klausurort: Aufgabe Summe Kurs 1618 SS 2009 (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Einführung in die objektorientierte Programmierung Nachklausur am 6.2.2010 Dauer: 3 Std., 10 13 Uhr

Mehr

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

Objektorientierte 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

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte 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

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete 2 Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, und Pakete Martin Wirsing Ziele Den Begriff der einfachen und mehrfachen Vererbung verstehen Verstehen, wann Vererbung eingesetzt wird deklarationen

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum

Mehr

1 Klassen und Objekte

1 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

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich

Mehr

Programmieren in Java

Programmieren 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

Mehr

Einstieg in die Informatik mit Java

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

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR 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

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

2.2 Übersetzung objektorientierter Sprachkonstrukte

2.2 Übersetzung objektorientierter Sprachkonstrukte 2.2 Übersetzung objektorientierter Sprachkonstrukte Vorgehen: Sprachmittel objektorientierter Programmiersprachen Übersetzung anhand eines Beispiels Übersetzung von Klassen bei Einfachvererbung Problematik

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 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,

Mehr

Programmieren 1 09 Vererbung und Polymorphie

Programmieren 1 09 Vererbung und Polymorphie Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe Kurs 1618 SS 2009 (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Einführung in die objektorientierte Programmierung Nachklausur am 6.2.2010 Dauer: 3 Std., 10 13 Uhr

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr