Kurs OPR. Objektorientierte Programmierung

Größe: px
Ab Seite anzeigen:

Download "Kurs OPR. Objektorientierte Programmierung"

Transkript

1 Kurs OPR Objektorientierte Programmierung Lektion: 006-Abstrakte Klassen, Interfaces etc. Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4

2 Inhaltsverzeichnis 1 Abstrakte Klassen und Interfaces Ziele Abstrakte Klassen Interface (Schnittstelle) Mehrfachvererbung und Interfaces Interfaces vs. abstrakte Klassen Adapterklassen Professionelles Programmieren 10 2 Programmpakete Ziele Packages Importieren von Klassen und Packages Sichtbarkeitsregeln für Packages Professionelles Programmieren 15 Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 2

3 1 Abstrakte Klassen und Interfaces 1.1 Ziele Sie können die Begriffe abstrakte Klasse, Methode und Interface erklären. Sie können mit abstrakten Klassen und Interfaces umgehen. Sie können an Beispielen erklären, wie und wozu abstrakte Klassen und Interfaces verwendet werden. Sie können eigene abstrakte Klassen und Interfaces schreiben. 1.2 Abstrakte Klassen Problemstellung Beispiel: Wir möchten ein Package schreiben, das Klassen für verschiedene Figuren enthält (Rechteck, Ellipse, Dreieck). Die Figuren sollen alle die gleiche Funktionalität haben Mögliche Klassenhierarchie des Package: Figur int xpos, ypos int breite, hoehe setsize(int b, int h) setposition(int x, int y) anzeigen(graphics g) float getflaeche() Rechteck Kreis int radius anzeigen(graphics g) float getflaeche() anzeigen(graphics g) float getflaeche() Abbildung 1: Mögliche Klasserhierarchie eines Package für Figuren Methoden, die alle Subklassen haben müssen, werden in der Superklasse deklariert. (Dank Polymorphismus wird jeweils die richtige Methode ausgewählt) Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 3

4 Einige Methode können auch in der Superklasse implementiert werden. Beispiel: setsize(int b, int h), setposition(int x, int y) Andere Methoden können hingegen nicht sinnvoll implementiert werden Beispiel: anzeigen(graphics g), float getflaeche() Problem: Wie stellt man sicher, dass auch zukünftige Subklassen von Figur, die gemeinsamen Methoden implementieren? Lösung: abstrakte Methoden und Klassen: Die Methoden anzeigen(graphics g) und float getflaeche() werden als abstract deklariert: public abstract void anzeigen(graphics g); public abstract float getflaeche(); Abstrakte Methoden haben nur einen Methodenkopf (Signatur), keinen Methodenkörper haben einen Strichpunkt (;) nach der Signatur haben den Modifikator abstract im Methodenkopf Folge für die Klasse Figur: Sobald eine Methode der Klasse Figur abstract ist, muss auch die Klasse selbst als abstract deklariert sein: public abstract class Figur{ public abstract void anzeigen(grapics g); public abstract float getflaeche(); Abstrakte Klasse Eine abstrakte Klasse hat mindestens eine abstrakte Methode und/oder ist als abstract deklariert. Sie kann nicht instanziert werden. Subklassen von abstrakten Klassen müssen die abstrakten Methoden implementieren. Falls sie das nicht tun, müssen sie ebenfalls als abstract deklariert sein. Beispiel von Abbildung 1: Die Klasse Rechteck wird von Klasse Figur abgeleitet und implementiert die abstrakten Methoden: class Rechteck extends Figur{ public void anzeigen(graphics g){ g.drawrect(xpos, ypos, breite, hoehe); public float getflaeche(){ return (float) breite*hoehe; Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 4

5 Aufgabe: Leiten Sie die Klasse Kreis von der abstrakten Klasse Figur ab. Lösung: Vorteile durch die Verwendung von abstrakten Klassen: Ein bestimmtes Klassendesign kann erzwungen werden. Sie erlaubt die Klassenbeschreibung in höheren Abstaktionsebenen: Von der Klasse Figur von oben können keine Objekte erzeugt werden. Sie fasst aber alle Objekte mit bestimmten Eigenschaften unter einem neuen Namen zusammen. Analogie in der Biologie: Ein Säugetier existiert selbst nicht, sondern ist ein Sammelbegriff (Abstraktion) von real existierenden Tieren. Alles in allem: Abstrakte Klassen erleichtern die Planung und den Aufbau von Klassenhierarchien 1.3 Interface (Schnittstelle) Ein Interface definiert eine Schnittstelle zwischen Klassen (siehe Abbildung 2). Ein Interface ist eine Klasse, die nur aus Methodenköpfen besteht. Beispiel: public interface Ballon { public void changesize(int newdiameter); public void move(int newx, int newy); public void display(graphics g); Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 5

6 Klasse A: verwendet Interface P Interface P + _ Klasse 1: implementiert Interface P Klasse 2: implementiert Interface P Klasse B: verwendet Interface P... Klasse 4: implementiert Interface P Abbildung 2: Interface Merkmale eines Interfaces Interfaces definieren wie Klassen einen neuen Datentyp. Es können somit Variablen dieses Datentyps deklariert werden, z.b.: Ballon ball; Interfaces können wie Klassen an Sub-Interfaces weitervererbt werden. Ein Interface ist immer abstract (abstract kann auch weggelassen werden). Es können deshalb keine Objekte aus einem Interface erzeugt werden. Ein Interface beschreibt nur die Schnittstelle (Klasse, Methoden, Parameter) einer Klassen, nicht deren Implementierung. Alle Methoden eines Interfaces sind public und abstract, auch wenn sie nicht explizit so deklariert sind. Methoden dürfen nicht static sein. Hingegen sind alle Variablen eines Interfaces static final (d.h. Konstanten) sein, auch wenn sie nicht explizit so deklariert sind. Interfaces können compiliert, aber nicht laufen gelassen werden. Das Compilieren erlaubt Typenprüfung bei der Verwendung eines Interfaces. Das compiliertes Interface wird ebenfalls als Class-Datei, InterfaceName.class, gespeichert. Implementieren von Interfaces: Ein Interface wird durch eine Klasse implementiert, die alle Methoden des Interfaces implementiert. Deklaration einer Klasse, die ein Interface implementiert: class MeineKlasse implements Interfacename {... Die Klasse muss alle Methoden des Interfaces Interfacename implementieren. Dies wird vom Compiler überprüft. Interfaces können wie Klassen andere Interfaces durch extends erweitern. Klassen, die ein Sub-Interface implementieren, müssen auch alle Methoden der Super-Interfaces Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 6

7 implementieren. Eine Klasse kann gleichzeitig mehrere Interfaces implementieren: class MeinKlasse implements Interface1, Interface2,... {... Interfaces dienen zur Beschreibung von: Klassen, die bestimmte Methoden zur Verfügung stellen. ganzen Vererbungsstrukturen Interfaces können nicht verwendet werden für Beschreibung der Implementation der einzelnen Methoden Verwendung von anderen Klassen (hat-ein-relation. Grund: Nur Konstanten in Interfaces erlaubt) Beispiel für den Einsatz eines Interface: Methode zeichnelinksbuendig Wir möchten eine Methode schreiben, die eine Anzahl beliebiger graphischer Objekte linksbündig darstellen kann. Die Objekte müssen die zwei Methoden setposition und anzeigen zur Verfügung stellen. Dazu definieren wir folgendes Interface: import java.awt.*; public interface Darstellbar{ public void setposition(int x, int y); public void anzeigen(graphics g); Die Methode zeichnelinksbuendig sieht dann wie folgt aus: public void zeichnelinksbuendig(graphics g, Darstellbar[] figuren, int xpos, int abstand){ for (int i=0; i<figuren.length; i++){ figuren[i].setposition(xpos,i*abstand); figuren[i].anzeigen(g); Beachten Sie: zeichnelinksbuendig besitzt einen Array-Parameter vom Typ Darstellbar. Die Methode kann beliebige Objekte, die Darstellbar implementieren, darstellen. Aufgabe: Schreiben Sie eine Klasse Rechteck, die das Interface Darstellbar implementiert. Wie könnte man erreichen, dass alle Subklassen der Klasse Figur das Darstellbar- Interface implementieren? Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 7

8 Lösung: 1.4 Mehrfachvererbung und Interfaces Java erlaubt nur einfache Vererbung Mehrfachvererbung ist aber nachbildbar mit Interfaces, da eine Klasse mehrere Interfaces implementieren kann. Beispiel: Das Applet MeinSpiel ist abgeleitet von der Klasse Applet (Vererbung) Zusätzlich soll es die Interfaces ActionListener und MouseListener implementieren: public class MeinSpiel extends Applet implements ActionListener, MouseListener{... Darstellung in UML siehe Abbildung Interfaces vs. abstrakte Klassen Unterschied zwischen abstakten Klassen und Interfaces: Abstrakte Klassen können Methoden-Implementationen enthalten, Interfaces nicht. Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 8

9 Eine Klasse kann mehrere Interfaces implementieren, aber nur eine Klasse erweitern. Interfaces werden nur beim Compilieren gebraucht. Methoden abstrakter Klassen werden dagegen zur Laufzeit zum Programm gelinkt. Objekt Applet MouseListener MeinSpiel ActionListener Abbildung 3: Implementation von Interfaces in UML 1.6 Adapterklassen In Java sind sogenannte Adapterklassen für jedes EventListener-Interface vordefiniert: Adapterklassen sind abstrakte Klassen, die das entsprechende Interface implementieren. Vorteil: Falls man nur eine Methode braucht, erweitert man einfacher die Adapterklasse, anstatt das ganze Interface zu implementieren. Beispiel: MouseListener Interface schreibt schreibt vor, dass die folgenden 5 Methoden implementiert werden müssen: mouseclicked(mouseevent e) // Maustaste geclickt mousepressed(mouseevent e) // Maustaste gedrückt mousereleased(mouseevent e) // Maustaste losgelassen mouseentered(mouseevent e) // Cursor in Komponente // eingetreten mouseexited(mouseevent e) // Cursor hat Komponent // verlassen Falls man z.b. nur mouseclicked braucht, müssen die anderen trotzdem geschrieben werden. Alternative: Verwendung (d.h. Erweiterung) der Klasse MouseAdapter: Vorteil: Es muss nur die Methode mouseclicked überschrieben werden: public class MeineKlasse extends MouseAdapter{ public void mousclicked(mouseevent e){... Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 9

10 Zu jedem Listener mit dem Namen XXXListener gibt es eine entsprechende Adapterklasse mit dem Namen XXXAdapter. 1.7 Professionelles Programmieren Interfaces und alle Bestandteile davon gut dokumentieren aus Sicht des Anwenders, nicht des Implementierers. Für Interfaces gelten die gleichen Regeln für die Namensgebung wie bei Klassennamen. Verwenden Sie Interfaces, um Klassen und Subsysteme zu entkoppeln. Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 10

11 2 Programmpakete 2.1 Ziele Sie können Klassen aus gegebenen Packages importieren. Sie können eigene Packages deklarieren. 2.2 Packages Normalerweise befindet sich jede Java-Klasse in einem eigenen File mit dem gleichem Filenamen wie die Klasse. Falls zwei Klassen denselben Namen haben, so sind sie nicht mehr eindeutig identifizierbar. Abhilfe: Der gesamte Namensraum wird durch sogenannte Packages aufgeteilt. Packages Fasst eine Gruppe von Klassen (und eventuell Subpackages) zusammen unter einem (möglichst eindeutigen) Namen Beispiele: java.applet : Alle Klassen im Zusammenhang mit Applets java.awt : Die Klassen des Abstract-Windowing-Toolkit javax.swing : Die Klassen von Swing Vorteile: Klassen werden eindeutig spezifizierbar durch Angabe des Packagenamens. Die Daten innerhalb eines Packages werden zusätzlich gekapselt. Es können zusätzliche Zugriffsberechtigung für Klassen innerhalb desselben Packages definiert werden. Klassen desselben Package werden im gleichen Directory gespeichert. Der Name des Directorys muss gleich sein wie der des Package. Deklaration: Package-Deklaration muss als erstes Statement in jeder Klasse stehen: package mypackage; import java.applet.*; Package-Namen Beginnen normalerweise mit Kleinbuchstaben (häufig ganzer Packagename kleingeschrieben) Sonst gelten die gleichen Regeln wie bei Klassennamen. Packagenamen sollten internetweit eindeutig sein. Vorschlag für internetweit eindeutige Package- Namen: URL verwenden. Damit würde eine Methode einer bestimmten Klasse folgendermassen eindeutig spezifiziert: firmendomänenname.verzeichnis1.verzeichnis packagename.klassenname.methodenname Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 11

12 Beispiele: com.sybase.jdbc.sybdriver ch.zhaw.huhp.meinpackage.genialeklasse Klassen ohne Package-Angabe gehören zu einem anonymen Package. Zu ihm gehören alle "anonymen" Klassen im gleichen File und im gleichen Directory. Welche Klassen soll man zu Packages zusammenfassen? Es gibt keine Regeln über die Anzahl Klassen pro Package Klassen die einander häufig brauchen, sollten im gleichem Package ablegt sein Klassen, die häufig gebraucht werden, werden häufig in separate Packages abgelegt (Klassenbibliothek) 2.3 Importieren von Klassen und Packages Generell muss jede Klasse, die verwendet wird, eindeutig mit dem vollen Package-Namen spezifiziert werden. Der volle Package-Name kann nur weggelassen werden, wenn die entsprechende Klasse mit einem import-statement am Anfang der Datei importiert wird: Beispiel: Wir möchten die Klassenmethode statmethode() der Klasse mypackage.myclass aufrufen. ohne import: mypackage.myclass.statmethode(); mit import: import mypackage.myclass;... MyClass.statMethode(); Falls alle Klassen eines Packages importiert werden sollen: import mypackage.*; Zur eindeutigen Spezifikation eines Packages muss der ganze Directory-Pfad des Package angegeben werden: Beispiel: import projects.myproject.mypackage; projects muss dabei ein Subdirectory eines Verzeichnisses im Classpath von Java sein. Die Punkte werden je nach Betriebssystem in / oder \ übersetzt, um entsprechendes Directory zu finden. Die Packages im JDK beginnen mit java (Standardklassen) javax (Standard-Erweiterungsklassen des JDK) org.omg (CORBA) Basis-Package java.lang wird automatisch importiert enthält die grundlegenden Klassen von Java. Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 12

13 2.4 Sichtbarkeitsregeln für Packages Java definiert für Packages einen zusätzlichen Sichtbarkeitsbereich: package. Dies ist die Standardsichtbarkeit in Java. Klassen, Methoden, Variablen mit package-sichtbarkeit sind in jeder Klasse innerhalb des gleichen Packages sichtbar. Deklaration der package-sichtbarkeit: int x; // ohne Sichtbarkeitsmodifikator package-sichtbarkeit Zusammenfassung aller Zugriffsmodifikatoren in Java gibt folgende Tabelle 1: Sichtbarkeit Zugriffsmodifikator gleiche Klasse gleiches Package Subklasse in anderem Package andere Klasse in anderem Package private ja nein nein nein keiner (d.h. package) ja ja nein nein protected ja ja ja nein public ja ja ja ja Tabelle 1: Zugriffsmodifikatoren in Java Übung Studieren Sie das folgende Programm 1 und markieren Sie alle Zeilen, die einen Compiler-Fehler ergeben (weil eine Variable, Methoden oder Klasse) nicht sichtbar ist. package sicht1; import sicht2.*; public class Sichtbarkeit { public static void main(string[] args){ SamePackage same = new SamePackage(); PublicKlasse publicobj = new PublicKlasse(); PrivatKlasse privatobj = new PrivatKlasse(); SubOtherKlasse subotherobj = new SubOtherKlasse(); System.out.println("a = "+ same.a); System.out.println("b = "+ same.b); System.out.println("c = "+ same.c); System.out.println("d = "+ same.d); System.out.println("Package sicht2"); System.out.println("a = "+ publicobj.a); System.out.println("b = "+ publicobj.b); System.out.println("c = "+ publicobj.c); Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 13

14 System.out.println("d = "+ publicobj.d); System.out.println("SubOtherKlasse"); System.out.println("a = "+ subotherobj.a); System.out.println("b = "+ subotherobj.b); System.out.println("c = "+ subotherobj.c); System.out.println("d = "+ subotherobj.d); neue Datei package sicht1; class SamePackage{ private int a = 1; public int b = 2; int c = 3; protected int d = 4; neue Datei package sicht1; class SubOtherKlasse extends PublicKlasse{ SubOtherKlasse(){ System.out.println("a = "+ a); System.out.println("b = "+ b); System.out.println("c = "+ c); System.out.println("d = "+ d); neue Datei package sicht2; public class PublicKlasse{ private int a = 10; public int b = 11; int c = 12; protected int d = 13; neue Datei package sicht2; class PrivatKlasse{ private int a = 20; public int b = 21; int c = 22; protected int d = 23; Programm 1: Sichtbarkeit Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 14

15 2.5 Professionelles Programmieren Wenn mehr als eine Klasse von einem Package importiert werden soll, importieren Sie das ganze Package mit einer Wildcard. Abstrakte Klassen, Interfaces etc.doc 2010 InIT/ZHAW 15

Abstrakte Klassen, Interfaces

Abstrakte Klassen, Interfaces Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische

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

INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces

INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces Abstrakte Klassen Interfaces (Schnittstelle) Mehrfachvererbung mit Interfaces Interfaces vs. abstrakte Klassen Innere Klassen Anonyme Klassen Adapterklassen

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

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

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

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

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

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

10. Pakete. Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek.

10. Pakete. Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek. 10. Pakete Grundlagen zu Paketen 10. Pakete Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek. Beispiele: java.lang: Standardklassen zur Sprache

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Abstrakte Klassen und Interfaces

Abstrakte Klassen und Interfaces Abstrakte n und Interfaces Abstrakte n Interfaces (Schnittstelle) Mehrfachvererbung mit Interfaces Interfaces vs. abstrakte n Innere n Anonyme n Adapterklassen Abstrakte n 2 50 Abstrakte n und Methoden

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

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

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

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

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

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

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

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

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

Geschachtelte Klassen

Geschachtelte Klassen Geschachtelte Klassen Die Programmiersprache Java bietet nicht nur die Möglichkeit innerhalb von Klassen Datenfelder und Methoden zu definieren, sondern auch Klassen. Solche Klassen heißen en geschachtelte

Mehr

Abstrakte Klassen und Schnittstellen. Abstrakte Klassen und Schnittstellen. Abstrakte Klassen und Schnittstellen. Vererbung von abstrakten Methoden

Abstrakte Klassen und Schnittstellen. Abstrakte Klassen und Schnittstellen. Abstrakte Klassen und Schnittstellen. Vererbung von abstrakten Methoden und und Definieren Typen (nicht instanziierbare ) Können Methoden- und Attributdefinitionen enthalten Methoden können abstrakt definiert werden (Methoden ohne Rumpf) und abstrakte werden vererbt(einfache

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

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

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek 1 Ereignis-orientierte Programmierung Prinzipien Programm besteht aus einer Reihe von Dämonen (=Listener) Dämon (=Listener)

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

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

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

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

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

Vererbung, Polymorphismus

Vererbung, Polymorphismus Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign

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

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

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

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

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

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

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen?

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? Kapitel 2 1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen? 1. Durch das Verwenden von Untertypbeziehungen: Untertypen können oft einen Großteil

Mehr

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen(); Typecast class Pilz void suchen() void sammeln() class EßbarerPilz extends Pilz Suppe kochen() Suppe einesuppe = new Suppe(); return einesuppe; class GiftPilz extends Pilz void entsorgen() class Suppe

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

II.4.5 Generische Datentypen - 1 -

II.4.5 Generische Datentypen - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.5 Generische Datentypen - 1 - Ähnliche

Mehr

Aufbau einer typischen Java-Datei

Aufbau einer typischen Java-Datei Aufbau einer typischen Java-Datei 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [package mein.paket;] [import

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

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

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

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

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette

Mehr

Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene

Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene Programmiertechnik Vererbung & Polymorphismus für Fortgeschrittene Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette Problem:

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

Informatik II Übung, Woche 17

Informatik II Übung, Woche 17 Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung

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

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

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

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

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

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

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse Innere Klassen in Java Java 1.0: nur top-level Klassen Seit Java Version 1.1: Innere Klassen Deklaration einer Klasse innerhalb einer anderen Klasse Illustration Eigenschaften Vorteile Anwendungsmöglichkeiten

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

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

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

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

Zugriffsrechte und Packages

Zugriffsrechte und Packages Zugriffsrechte und Packages Allgemeine Informatik I Wintersemester 2013/14 Karsten Weihe Schnitt: Sascha Weiß Mit freundlicher Unterstützung des elc der TU Darmstadt Komplexer Typ Klasse Interface Standardbibliothek

Mehr

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 12: Strukturierung von Java-Programmen: Packages Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung

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

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Ereignisverwaltung und Layout-Typen

Ereignisverwaltung und Layout-Typen Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Ereignisverwaltung

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

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

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

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz Stefan Brass: OOP (Java), 16. Pakete, Zugriffsschutz 1/30 Objektorientierte Programmierung Kapitel 16: Pakete, Zugriffsschutz Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

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 Prinzip der Vererbung: Aus

Mehr

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

Java Einführung Packages

Java Einführung Packages Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)

Mehr