Programmieren in Java

Größe: px
Ab Seite anzeigen:

Download "Programmieren in Java"

Transkript

1 Einführung in die Objektorientierung (Teil 3) Vererbung & Enums

2 2 Wiederholung (Packages) Der Package-Name wird zum unmittelbaren Teil des Klassennamens Um eine Klasse aus einem anderen Paket nutzen zu können, muss entweder der komplette Name angegeben werden public int berechnewert(int value, int faktor) { return java.lang.math.abs(value) * faktor; oder die Klasse importiert werden package BEZEICHNER ; package wwu.ziv.java.demo; import PAKETNAME ; import static java.lang.math.abs; import PAKETNAME ; import ; KLASSEN public class Demo { public int berechnewert(int value, int faktor) { return abs(value) * faktor; Nach einem Import muss der Paketname nicht mehr angegeben werden

3 3 Wiederholung (Klassendiagramm zum Computer-Beispiel) Graph, der während der Analyse eines Problems erstellt wird Identifiziert alle Klasse und deren Beziehungen Identifiziert Beziehungs-Attribute und deren Kardinalität Klasse Kardinalität Computer Beziehung 1 4 Harddrive RamModule n File Aggregation Komposition

4 4 Wiederholung (static und final) Mit static lassen sich Attribute als Klassen-Attribute definieren SICHTBARKEIT static BEZEICHNER = AUSDRUCK ; KLASSENNAME. BEZEICHNER optional public class Computer { private static int maxquantityofram = 2; Computer.maxQuantityOfRam Mit final können Attribute als konstant definiert werden SICHTBARKEIT final BEZEICHNER = AUSDRUCK ; optional public class Computer { private final int maxquantityofram = 2; public class Computer { private final int maxquantityofram; public Computer () { maxquantityofram = 2;

5 5 Vererbung Als Beziehung zwischen Klassen wurden bisher Komposition und Aggregation vorgestellt Grob spricht man von Besteht aus, Gehört zu Beziehungen Daneben gibt es noch die Ist ein -Beziehung Ein PKW ist genauso wie ein LKW ein Fahrzeug Ein Dreieck ist genauso wie ein Kreis eine geometrische Figur Ein Angestellter ist genauso wie ein Beamter ein Arbeitnehmer Ein Arbeitnehmer ist genauso wie ein Student ein Mensch Ein Mensch ist genauso wie ein Affe ein Säugetier usw. Es wirkt unnatürlich diese Beziehung als Komposition oder Aggregation darzustellen Die meisten objektorientierten Programmiersprachen bieten das Konzept der Vererbung an

6 6 Vererbung im Klassendiagram Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware farbe: String marke: String neupreis: double warennummer: int zustand: Zustand Vererbung Handtasche breite: float hoehe: float Schuhpaar groesse: int Eine Handtasche ist eine Ware Ein Schuhpaar ist eine Ware

7 7 Vererbung in Java I Das Schlüsselwort zu Deklaration von Vererbung ist extends public class BEZEICHNER extends KLASSEN-BEZEICHNER { public class Ware { private double neupreis; public class Handtasche extends Ware { private float breite; private float hoehe; public class Schuhpaar extends Ware { private int groesse; Java kennt nur einfache Vererbung, d.h. eine Klasse kann maximal von einer anderen Klasse erben Die Hierarchietiefe ist allerdings beliebig, d.h. die Elternklasse (oben Ware) kann wieder von einer anderen Klasse erben

8 8 Vererbung in Java II Sprachgebrauch: Elternklasse: Klasse von der geerbt wird Kindklasse: Alle von einer Elternklasse erbenden Klassen Eine Kindklasse erbt: Alle Attribute der Elternklasse Alle Methoden der Elternklasse Alle Konstruktoren der Elternklasse Zugriff auf Elemente (Attribut, Methode, Konstruktor) zur Laufzeit: Ist das Element in der Klasse der aktuellen Instanz definiert? Falls nein: Ist das Element ein der Elternklasse definiert? Falls nein: Hat die Elternklasse eine Elternklasse? Falls ja: Die Hierarchie durchlaufen, bis das Element gefunden wurde Ansonsten: Compiler-Fehler

9 9 Vererbung und Variablen Ist ein Beziehungen sind auf Variablen übertragbar: public static void main(string[] args) { Ware ware; Ware ware = new Handtasche(); System.out.println(ware); // Handtasche: ware = new Schuhpaar(); System.out.println(ware); // Schuhpaar: Alle von Ware-erbenden Klassen sind eine Ware Daher kann der Variablen ware jede Instanz zugewiesen werden, deren Klasse irgendwo von Ware erbt Umgekehrt ist die Zuweisung nicht zulässig: Handtasche handtasche; handtasche = new Schuhpaar(); handtasche = new Ware(); Handtasche Eine Handtasche-Instanz ist keine Instanz der Klasse Schuhpaar Eine Ware-Instanz ist nicht zwangsläufig eine Handtasche-Instanz Schuhpaar

10 10 Vererbung und Konstruktoren Bei der Erzeugung einer Instanz wird in jeder Hierarchieebene ein Konstruktor ausgeführt Angenommen die Elternklasse Ware hat folgenden Konstruktor public class Ware { private double neupreis; public Ware(double neupreis) {this.neupreis = neupreis; Damit ist der Default-Konstruktor überschrieben In den erbenden Klassen muss der Konstruktor explizit aufgerufen werden Der Aufruf des Eltern-Konstruktors erfolgt über das Schlüsselwort super public class Handtasche extends Ware { private float breite; private float hoehe; public Handtasche(double neupreis, float breite, float hoehe) { super(neupreis); this.breite = breite; this.hoehe = hoehe; Der Aufruf von super muss dabei immer der erste Satz im Konstruktor sein

11 11 Vererbung und Methoden Die abgeleitete Klasse erbt alle Methoden der Elternklasse Damit erben auch alle Instanzen die Funktionalität der Elternklasse public class Ware { private double neupreis; public Ware(double neupreis) {this.neupreis = neuspreis; public void ausgabe() { System.out.print(this.neupreis); public static void main(string[] args) { Ware ware; ware = new Handtasche(45.0f, 30.0f, 20.0f); ware.ausgabe(); // 45.0f ware = new Schuhpaar(69.0f, ); ware.ausgabe(); // 69.0f Die Methode ausgabe wurde in Ware definiert, kann aber über Instanzen von Handtasche und Schuhpaar aufgerufen werden

12 12 Vererbung und Methoden (II) Jede Methode kann nur auf die Instanzattribute und -methoden der eigenen oder der Elternklasse zugreifen Die ausgabe-methode von Ware kennt daher nur das Attribut neupreis Es ist möglich Methoden der Elternklasse zu überschreiben: public class Handtasche extends Ware { private float breite; private float hoehe; public void ausgabe() { System.out.print("breite:" + this.breite + ", hoehe:" + this.hoehe); Ware ware; ware = new Handtasche(45.0f, 30.0f, 20.0f); ware.ausgabe(); // augabe von Handtasche: breite: 30.0f, hoehe: 20.0f ware = new Schuhpaar(69.0f, ); ware.ausgabe(); // ausgabe von Ware: 69.0f

13 13 Vererbung und Methoden (III) Der Handtasche-Aufruf von ausgabe liefert keine Angabe zu neupreis mehr Mit super kann nicht nur ein Konstruktor aufgerufen werden Auch der Zugriff auf Methoden und Attribute der Elternklasse ist damit möglich public class Handtasche extends Ware { public void ausgabe() { super.ausgabe(); System.out.print("breite:" + this.breite + ", hoehe:" + this.hoehe); Ware ware; ware = new Handtasche(45.0f, 30.0f, 20.0f); ware.ausgabe(); // ausgabe von Handtasche: 45.0f breite: 30.0f, hoehe: 20.0f ware = new Schuhpaar(69.0f, ); ware.ausgabe(); // ausgabe von Ware: 69.0f Der Zugriff auf neupreis innerhalb von Handtasche scheitert System.out.print("neupreis:" + super.neupreis + ", breite:" + this.breite + ", hoehe:" + this.hoehe);

14 14 Sichtbarkeit (Wiederholung) Es gibt vier Sichtbarkeitsmodifiktoren für Attribute und Methoden public: Zugriff von überall protected: Zugriff innerhalb des Packages und bei Vererbung [keine Angabe]: Zugriff innerhalb des Packages ( package private ) private: Zugriff nur innerhalb der eigenen Klasse/Instanz public class Ware { private double neupreis; Das Attribut neupreis ist bei private nur innerhalb von Ware verwendbar Es gibt zwei Sichtbarkeitsmodifikatoren für Klassen: public: Zugriff von überall [keine Angabe]: Zugriff innerhalb des Packages ( package private )

15 15 Sichtbarkeit bei Attribute (Methoden analog) package wwu.ziv.java.playground.a; public class FirstClassInA { public String name; package wwu.ziv.java.playground.a; public class SecondClassInA { protected String name; package wwu.ziv.java.playground.a; public class ExtendFirstInA extends FirstClassInA { package wwu.ziv.java.playground.a; public class ExtendSecondInA extends SecondClassInA { package wwu.ziv.java.playground.b; public class FirstClassInB { String name; package wwu.ziv.java.playground.b; public class SecondClassInB { private String name; package wwu.ziv.java.playground.b; public class ExtendFirstInB extends FirstClassInB { package wwu.ziv.java.playground.b; public class ExtendSecondInB extends SecondClassInB {

16 16 Sichtbarkeit bei Klassen Klassen können entweder public oder package private also ohne Angabe deklariert werden package wwu.ziv.java.playground.a; package wwu.ziv.java.playground.a; public class FirstClassInA { package wwu.ziv.java.playground.b; class SecondClassInA { package wwu.ziv.java.playground.b; public class FirstClassInB { class SecondClassInB { Innerhalb einer Klassen-Datei kann es mehrere Klassendeklarationen geben Allerdings: Nur eine Klasse kann public sein Alle anderen müssen package private sein Die Klasse mit public muss mit den Dateinamen übereinstimmen, Kein public, so muss der Name mit irgendeiner Klasse übereinstimmen In der Regel nur eine Klasse pro Datei

17 17 Die Klasse Object In Java fängt jede Klassenhierarchie mit der Klasse Object an D.h. jede Klasse, die nicht explizit von einer anderen Klasse erbt, erbt von Object, ohne dass dies angegeben werden muss Am Beispiel der Waren Handtasche Object Ware Schuhpaar Insbesondere heißt dies, dass Variablen vom Typ Object jede erdenkliche Instanz aufnehmen können Object object1 = new Ware(); Object object2 = "Hello World"; Object[] array1 = new Handtasche[] ; Object[] array2 = new String[] ;

18 18 Die Klasse Object (II) Object definiert keine Instanzattribute, allerdings eine Reihe von Methoden Object public String tostring() public Class getclass() public boolean equals(object obj) public int hashcode() public void notifiy() public void notifiyall() public void wait() public void wait(long timeout) public void wait(long timeout, int nanos) protected Object clone() protected void finalize() String-Repräsentation Zugriff auf definierende Klasse Vergleich mit anderem Objekt Eindeutiger Code dieser Instanz Multithreading Objekt clonen Letzter Atemzug vor Garbage-Collection Wie man sieht, sind Klassen nicht nur eine Compilezeitdefinition, sondern auch Objekte der Klasse Class Auf Multithreading wird in dieser Vorlesung nicht eingegangen Die Methoden clone u. finalize können nicht von außen aufgerufen werden Insbesondere sollte finalize niemals explizit aufgerufen werden

19 19 Object::toString Die Methode tostring ist besonders interessant: Jedes Objekt, das in einer String-Konkatenation genutzt wird, wird automatisch per tostring zur String-Repräsentation umgewandelt package wwu.ziv.java.spielwiese; package wwu.ziv.java.spielwiese; public class Apfel { private String sorte; public Apfel(String sorte) { this.sorte = sorte; public class Birne { private String sorte; public Birne(String sorte) { this.sorte = sorte; public String tostring() {return this.sorte; Apfel object1 = new Apfel("Golden Delicious"); Birne object2 = new Birne("Williams Christ"); System.out.print("Object 1:" + object1); System.out.print("Object 2:" + object2); Object 1: wwu.ziv.java.spielwiese.apfel@1503a3 Object 2: Williams Christ

20 20 Vererbung & this anhand von Object::toString public class Ware { public class Handtasche extends Ware { public String tostring() { return this.getclass().getsimplename(); public String tostring() { return super.tostring() + " breite:" + this.breite + " hoehe:" + this.hoehe; System.out.println( new Ware() ); Ware tostring: String System.out.println( new Handtasche() ); System.out.println( new Schuhpaar() ); Ware Handtasche breite: hoehe: Schuhpaar Handtasche tostring: String Schuhpaar tostring: String

21 21 Abstrakte Klassen In der Objektorientierung erben alle Klassen die Methoden der Elternklasse Ware soll nun um die Methode getwarenwert erweitert werden public class Ware { public double getwarenwert() public String tostring() { return this.getclass().getsimplename() + ", warenwert: " + this.getwarenwert(); Ein Warenwert ist abhängig vom Typ der Ware (Handtasche, Schuhpaar, etc.) Die Klasse Ware kennt ihre Kindklassen nicht Die Methode getwarenwert kann für Ware demnach nicht sinnig definiert werden Man könnte die Methode in die Subklassen auslagern, allerdings: Der Aufruf getwarenwert in tostring von Ware wäre nicht mehr möglich Man weiß, dass alle Ware-Instanzen einen Warenwert haben Die Methode in Ware unterzubringen ist demnach der richtige Ansatz Mit den bisherigen Mitteln muss getwarenwert allerdings implementiert werden

22 22 Abstrakte Klassen (II) Klassen können mit abstract als abstrakt definiert werden Ist eine Klasse abstrakt, so kann keine Instanz der Klasse erzeugt werden SICHTBARKEIT abstract class KLASSEN-BEZEICHNER { public abstract class Ware { Ebenso können Methoden als abstract definiert werden SICHTBARKEIT abstract RÜCKGABETYP BEZEICHNER ( DATENTYP PARAM- BEZEICHNER, ; optional public abstract double getwarenwert(); Eine abstrakte Methode hat keinen Methodenrumpf (Implementierung) Lediglich die Signatur wird angegeben Existiert innerhalb einer Klasse mindestens eine abstrakte Methode, so muss auch die Klasse abstract sein Alle erbenden Klassen müssen entweder die Methode implementieren oder sind selbst wieder abstract

23 23 Abstrakte Klassen (III) public abstract class Ware { public abstract double getwarenwert(); public String tostring() { return this.getclass().getsimplename() + ", Warenwert: " + this.getwarenwert(); public class Handtasche extends Ware { public double getwarenwert() { double wert = 0; return wert; public class Schuhpaar extends Ware { public double getwarenwert() { double wert = 0; return wert;

24 24 Abstrakten Methoden mit Netbeans anlegen Neue Klasse von einer Klasse mit abstrakten Methoden ableiten (extends) Name der neuen Klasse wird rot unterstrichen Cursor auf Klassennamen setzen Tastenkombination: ALT + Return drücken Im Kontextmenü den Eintrag Implement all abstract methods lässt Compiler prüfen, ob Oberklasse die Methode enthält UnsupportedOperationException ersetzen durch eigenen Quellcode public class Handtasche extends Ware { public double getwarenwert() { throw new UnsupportedOperationException("Not supported yet.");

25 25 Mehrfachvererbung A dosomething: void B dosomething: void C D D d = new D(); d.dosomething(); Welche Methode wird aufgerufen B::doSomething oder A::doSomething? Das Problem ist nicht trivial lösbar, Java unterstützt daher keine konkrete Mehrfachvererbung

26 26 Typisierung des Zustands Der Zustand ist ein Instanzattribut der Waren-Klasse D.h. Zustand muss typisiert werden Klassisch bieten sich zwei Möglichkeiten an: String oder int Die möglichen Werte sollten als konstante Klassenattribute definieren werden public class Ware { public static final String NEU = "NEU"; public static final String WIE_NEU = "WIE_NEU"; public class Ware { public static final int NEU = 0; public static final int WIE_NEU = 1; Die Zuteilung eines Wertes erfolgt über den Attributnamen String zustand = Ware.NEU; int zustand = Ware.NEU; Dies hat zum Vorteil: Da der Attribut-Name anstelle des Wertes benutzt wird und dieser vom Compiler auf Existenz überprüft wird, keine Flüchtigkeitsfehler Im int-fall: Attributname sprechender als eine Zahl

27 27 Typisierung des Zustands Der Ansatz einen bestimmten Satz an Werten über konstante Klassenattribute zu benennen hat allerdings klare Nachteile: Da der Typ der Attribute int oder String ist, kann jeder beliebige String oder int-wert eingesetzt werden String zustand = "SUPPE"; int zustand = -1111; Der Compiler hat keine Möglichkeit zu überprüfen, ob ein angegebener Wert valide ist Die Werte sind nicht abgeschlossen gegenüber Operatoren String zustand = Ware.NEU + Ware.WIE_NEU; Man könnte meinen, dass dies entweder heißt, beide Zustände sind zulässig oder dass ein kombinierter Zustand gemeint ist Mit Java (1.)5 wurden Enums in den Java-Sprachumfang eingeführt, die Aufzählungen wie oben konsistent abbilden

28 28 Enums Enums sind eine Aufzählung von int-werten, wobei jedes Element einem bestimmten Namen zugeordnet ist In Java werden Enums über das Schlüsselwort enum definiert und sind spezielle Klassen und damit jeder Enum-Wert ein Objekt SICHTBARKEIT KLASSEN-BEZEICHNER { enum ENUM-BEZEICHNER, public enum Zustand { NEU, WIE_NEU, Lediglich die Namen werden angegeben und werden per Konvention komplett in Großbuchstaben notiert (analog zu konstanten Klassenattributen) Die Werte werden konsekutiv angefangen bei 0 einem int-wert zugeordnet Ein Zugriff erfolgt über die Dereferenzierung des Klassennamens: Zustand.NEU

29 29 Enums (2) Über die Methoden ordinal() und name() kann die zugordnete Ordnungszahl sowie der Name eines Enums abgefragt werden Zustand zustand = Zustand.NEU; System.out.print("Das Enum " + zustand.name() + " hat die Ordnungszahl " + zustand.ordinal()); // Das Enum NEU hat die Ordnungszahl 0 Enums können in switch-anweisungen genutzt werden: switch (zustand) { case NEU: case WIE_NEU: case default: Achtung: Im Gegensatz zum normalen Zugriff wird in der case-anweisung nur der Enum-Name angeben, keine explizite Dereferenzierung

30 30 Zusammenfassung Wie wird das Prinzip der Vererbung in Java umgesetzt Was bedeutet Methodenüberschreibung und welche Konsequenzen hat diese Sie kennen die Bedeutung der Zugriffsmodifizierer für Attribute und Methoden: private default/keine Angabe (private package) protected public Sie kennen die Bedeutung der Zugriffsmodifizierer für Klassen: default/keine Angabe (private package) public Was unterscheidet eine abstrakte von einer nicht abstrakten Klasse?

31 31 Aufgabe Aufgabe 1: Kopieren Sie das Netbeans-Projekt zur 8. Vorlesung mit dem Paketnamen de.wwu.ziv.vorlesungen.java.vorlesung8.aufgabe und der Klasse Main an. Erstellen Sie die Klasse Jacke: Die Klasse enthält den Enum GROESSE mit den Elementen S, M, L, XL, XXL. Geben Sie der Klasse das Attribut groesse vom Typ GROESSE. Der Konstruktor Jacke(String farbe, String marke, float neupreis, Zustand zustand, GROESSE groesse)setzt die Parameter in der Oberklasse mit dessen Konstruktor und zusätzlich sein eigenes Attribut groesse. Überschreiben Sie die tostring-methode, sodass neben den Attributen der Oberklasse auch das Attribut groesse mit ausgegeben wird.

32 32 Aufgabe Weiter zu Aufgabe 1: Implementieren Sie in der Klasse Jacke die abstrakte getwarenwert- Methode, sodass der Wert analog zum Warenwert der Klasse Handtasche ermittelt wird. Als Erweiterung kommt aber noch hinzu, dass bei der Größe XL der Wert um 10 Prozent und bei XXL 20 Prozent erhöht wird. Instanziieren Sie in der Main-Funktion neben den Objekten aus dem Beispiel der Vorlesung 8 drei weitere Objekte vom Typ Jacke, sodass folgende Konsolenausgabe erscheint:

33 33 Aufgabe Aufgabe 2: Verschieben Sie die getwarenwert-methode aus der Klasse Handtasche und ersetzen damit die abstrakte Methode in der Klasse Ware. Überschreiben Sie das Verhalten der Methode getwarenwert in den Subklassen Schuhpaar und Jacke, sodass von der Oberklasse das geerbte Standardverhalten wiederverwendet wird und nur notwendige Anpassungen von den Unterklassen vorgenommen werden. Prüfen Sie, ob nun noch die gleiche Ausgabe in der Konsole erscheint.

34 34 Anhang: Literaturempfehlung Java ist auch eine Insel von Christian Ullenboom als Nachschlagewerk

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

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

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung (Teil 2) - Objekt-Relationen - Pakete 2 Wiederholung (Klassen) In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften

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

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

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

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

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

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

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

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

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

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Objekt-Relationen 2 Klassen In der Objektorientierung dienen Klassen als Blaupause für Objekte Eine Klasse beschreibt die Eigenschaften eines Objektes die Fähigkeiten

Mehr

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

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

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

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

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

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

Kapitel 4: Klassen und Unterklassen

Kapitel 4: Klassen und Unterklassen Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind

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

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

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

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

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

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

4. Vererbung Die Klasse Object. Die Klasse Object

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

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

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

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

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

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

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

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

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

6. Globalübung (zu Übungsblatt 8)

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

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

Algorithmen und Datenstrukturen 06

Algorithmen und Datenstrukturen 06 31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung

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

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 3 2 Übersicht der heutigen Inhalte Pakete Beispiel zur Verdeckung Polymorphie Modifikatoren bei Klassenelementen 3 Zusammenhang

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

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

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

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

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

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

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

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

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads

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

Präsentation Interfaces

Präsentation Interfaces Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 11 Besprechung: 15. 19.01.018 (KW 3) Vorbereitende

Mehr

Programmieren 2 Java Überblick

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

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

Java Einführung Vererbung und Polymorphie. Kapitel 13

Java 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

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

Arten von Klassen-Beziehungen

Arten 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

Mehr

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

Institut 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

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Enums, innere-klassen, Exceptions 2 Vererbung Repräsentiert eine ist ein Beziehung zwischen Klassen x: float y: float Point Form origin: Point Vererbung Rectangle width:

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

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

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

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

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

Programmierkurs C++ Abstrakte Klassen und Methoden

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

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

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

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

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

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

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

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP 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

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

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

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

Vererbung. Oberklassen und Unterklassen

Vererbung. Oberklassen und Unterklassen Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)

Mehr

Info B VL 8: Abstrakte Klassen & Interfaces

Info B VL 8: Abstrakte Klassen & Interfaces Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

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

Java I Vorlesung Vererbung und Sichtbarkeit

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

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

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

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 567

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 567 Überblick 6. Grundlagen der objektorientierten Programmierung 6.1 Abstrakte Datentypen: von Structures zu Klassen 6.2 Das objektorientierte Paradigma 6.3 Klassen und Objekte in Java 6.4 6.5 Interfaces

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

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

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Einführung in die Programmierung für NF. Vererbung

Einführung in die Programmierung für NF. Vererbung Einführung in die Programmierung für NF Vererbung Ziele Vererbungsprinzip der objektorien=erten Programmierung verstehen und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden

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

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck. Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:

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