INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces

Größe: px
Ab Seite anzeigen:

Download "INE2 OOP mit Java 3 Abstrakte Klassen und Interfaces"

Transkript

1 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

2 Abstrakte Klassen 2 von 51

3 Abstrakte Klassen und Methoden Problemstellung Beispiel: Klassenhierarchie für verschiedene geometrische Figuren wie Rechteck, Kreis, Dreieck Die Klassen für die einzelnen Figuren sollen alle die gleiche Funktionalität haben Methoden, die alle Unterklassen haben müssen, werden in der Oberklasse deklariert Polymorphismus ruft die richtige Methode auf Rectangle void draw() Figure int x,y,w,h void draw() getarea()... Circle int mx,my void draw() Mögliche Klassenhierarchie für Klasse Figur 3 von 51

4 Abstrakte Klassen und Methoden Einige Methode können in der Oberklasse implementiert werden: setsize(int w, int h) setpos(int x, int y) Andere Methoden können hingegen nicht sinnvoll implementiert werden: public void draw (Graphics g) public double getarea() Problem: Wie stellt man sicher, dass auch zukünftige Unterklassen der Klasse Figur, die gemeinsamen Methoden draw und getarea implementieren? Abstrakte Methoden und Klassen (abstract class) public abstract void draw(graphics g); public abstract double getarea(); Abstrakte Methoden zwingen den Programmierer, eigene Implementationen für alle abstrakten Methoden zu schreiben 4 von 51

5 Abstrakte Methoden haben nur einen Methodenkopf (Signatur), keinen Methodenkörper haben den Modifikator abstract im Methodenkopf haben einen Strichpunkt (;) nach der Signatur 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 draw(graphics g); public abstract double getarea(); 5 von 51

6 Abstrakte Klassen Eine abstrakte Klasse hat mindestens eine abstrakte Methode und/oder ist als abstract deklariert Sie kann nicht instanziert werden! Unterklassen von abstrakten Klassen müssen die abstrakten Methoden implementieren, sonst müssen sie ebenfalls als abstract deklariert sein Figure Figure <<abstract>> int x,y,w,h void draw() getarea()... oder int x,y,w,h void draw() getarea()... 6 von 51

7 Kontrollfrage Worin unterscheiden sich abstrakte Methoden von Methoden mit leerer Implementation public class Figur{ public void draw(graphics g) { // leere Methode public double getarea(){ // leere Methode return 0 // dummy return 7 von 51

8 Abstrakte Klassen Beispiel: Klasse Rechteck : public class Rectangle extends Figur{ public void draw(graphics g){ g.drawrect(x, y, w, h); public double getarea(){ return (double) w*h; Aufgabe: Leiten Sie die Klasse Circle von der abstrakten Klasse Figur ab Rectangle void draw() Figure int x,y,w,h void draw() getarea()... Circle int mx,my void draw() 8 von 51

9 Teil-Abstrakte Klassen Bei einer Klasse kann ein gemeinsame Teil implementiert sein. public abstract class Figur{ protected int x,y,w,h; public Figure(int x, int y, int w, int h) { this.x = x; this.y = y;this.w = w; this.w = w; public void setpos(int x, int y) { this.x = x; this.y = y; public void setsize(int w, int h) { this.w = w; this.h = h; public abstract void draw(graphics g); public abstract double getarea(); 9 von 51

10 Vorteile von abstrakten Klassen Ein bestimmtes Klassendesign kann erzwungen werden! Sie erlaubt die Klassenbeschreibung in höheren Abstraktionsebenen: Von der Klasse Figur können keine Objekte (Instanzen) erzeugt werden. Sie fasst alle Objekte mit bestimmten Eigenschaften unter einem neuen Namen zusammen Analogie in der Biologie: Ein Säugetier existiert selbst nicht (als Spezies), sondern ist ein Sammelbegriff (Abstraktion) von real existierenden Tieren Alles in allem: Abstrakte Klassen erleichtern die Planung und den Aufbau von Klassenhierarchien 10 von 51

11 Klassifizierung in (abstrakten) Klassen Zusammenfassen von Eigenschaften gleichartiger Klassen zu abstrakten Klassen Konzentrieren von gemeinsamen Eigenschaften und Methoden in der abstrakten Oberklasse Vorschreiben von weiteren Methoden, die in den Unterklassen implementiert werden müssen PKWs Zweiräder Nutzfahrzeuge 11 von 51

12 Übung Geben Sie je zwei Methoden an, die Sie in der gemeinsamen Oberklasse Fahrzeuge a) als abstrakt deklarieren würden b) deklarieren und implementieren würden Was wäre eine mögliche Oberklasse von Fahrzeug 12 von 51

13 Interfaces 13 von 51

14 Interfaces = reinabstrakten Klassen Ein Interface definiert eine Schnittstelle zwischen Klassen: Ein Interface ist eine "Klasse", die nur aus Methodenköpfen besteht: public interface Displayable { void draw(graphics g); Ein Interface ist im Prinzip eine reinabstrakte Klasse, in welcher sämtliche Methoden abstrakt deklariert sind Bezeichnung interface anstatt class 14 von 51

15 Interfaces werden implementiert: implements Klassen erben (extends) nicht von Interfaces sondern implementieren diese (implements) Sie haben Interfaces schon verwendet: public interface ActionListener { public void actionperformed(actionevent event); java.awt.event public class MyFrame extends JFrame implements ActionListener { public void actionperformed(actionevent event) { sämtliche Methoden eines Interfaces müssen von der Klasse implementiert werden sonst Klasse abstrakt, d.h. kann nicht instanziert werden 15 von 51

16 Merkmale eines Interfaces Entspricht einer (abstrakten) Klasse, die nur aus Methodeköpfen besteht Methoden sind per Default public ( public kann auch weglassen werden) Ein Interface ist immer abstract (abstract kann weggelassen werden) Es können deshalb keine Objekte aus einem Interface erzeugt werden Interfaces definieren wie Klassen einen neuen Datentyp Es können Variablen dieses Datentyps deklariert werden: Displayable dsp; Ein Interface beschreibt nur die Schnittstelle (Klasse, Methoden, Parameter) einer Klasse, nicht deren Implementierung 16 von 51

17 Merkmale eines Interfaces Methoden dürfen nicht static sein Hingegen müssen alle Variablen eines Interfaces static final (d.h. Konstanten) sein Interfaces können übersetzt, aber nicht instanziert werden Das Compilieren erlaubt Typenprüfung bei der Verwendung eines Interfaces if (obj instanceof Displayable) {... Interface Typen können in der Parameterliste von Methoden stehen void foo (Displayable d) {... -> erzwingt, dass nur Objekte übergeben werden können, deren Klasse ein bestimmtes Interface implementiert z.b. addactionlistener(actionlistener l) 17 von 51

18 Merkmale eines Interfaces Interfaces können wie Klassen an Unter-Interfaces weitervererbt werden extends wird in diesem Fall ebenfalls verwendet public interface Verkehrsmittel { public interface Fahrzeug extends Verkehrsmittel { es können mehrere Interfaces von einer Klasse implementiert werden class MyFrame extends JFrame implements ActionListener, MouseListener { 18 von 51

19 Deklaration von Interfaces Ein Interface beschreibt die Methoden die alle Klassen mindestens implementieren. Für Figuren könnten das z.b. folgendes Interface implementieren public interface Displayable { void draw(graphics g); 19 von 51

20 Graphische Darstellung von Interfaces Im Klassenbaum werden Interfaces gekennzeichnet Das "implementiert" Symbol ist etwas schlanker als das "erbt" Symbol Displayable void draw() Figure <<interface>> <<abstract>> implementiert implementiert int x,y,w,h void draw() getarea()... implementieren implementieren ebenfalls ebenfalls Displayable Displayable (weil (weil von von Figure Figure erben) erben) Rectangle void draw() Circle int mx,my void draw() 20 von 51

21 Implementieren von Interfaces Ein Interface wird durch eine Klasse implementiert. Deklaration einer Klasse, die ein Interface implementiert: class MeineKlasse implements Interfacename {... Die Klasse muss alle Methoden des Interfaces implementieren implements verpflichtet dazu! wird vom Compiler überprüft! Klassen, die ein Unter-Interface implementieren, müssen auch alle Methoden der Ober-Interfaces implementieren Eine Klasse kann gleichzeitig mehrere Interfaces implementieren: class MeineKlasse implements Interface1, Interface2,... { von 51

22 Verwendung von Interfaces Interfaces stellen sicher, dass eine Klasse gewisse Eigenschaften hat bzw. bestimmte Methoden zur Verfügung stellt (implementiert hat).. Es können Variablen von einem Interface Typ erstellt werden Displayable dsp = new Rectange( ); Alle im Interface definierten Methoden müssen von Rectangle implementiert werden können deshalb "sicher" aufgerufen werden. dsp.draw(g); Rectangle kann noch zusätzliche (nicht im Interface deklarierte) Methoden implementieren z.b. getarea( ) Frage: wie kann ich diese aufrufen? 22 von 51

23 Sichtbarkeit von Methoden Regel: Der statische Typ (Typ von dem die Variable deklariert wurde) bestimmt, welche Methoden und Attribute bekannt sind. Displayable dsp = new Rectange( ); dsp.getarea(); gilt gilt auch auch für für abstrakte abstrakte und und reguläre reguläre Klassen Klassen Lösung zuerst in Variable mit richtigem statischen Typ zuweisen Rectange rect = (Rectange)dsp; double d = rect.getarea(); oder Cast und Aufruf kombiniert double d = ((Rectangle)dsp).getArea(); Kontrollfrage: funktioniert das auch wenn ich zu Figure caste 23 von 51

24 Interfaces: Beispiel import java.awt.*; implements implements Displayable Displayable class Rechteck extends Figure { public void draw(graphics g){ g.drawrect(xpos, ypos, breite, hoehe); wegen wegen Displayable Displayable public double getarea(){ return (double) breite*hoehe;... Rechteck (int x, int y, int w, int h) { super(x, y, w, h); Implementierung der Implementierung der abstrakten Methoden der abstrakten Methoden der Klasse Figure Klasse Figure Konstruktor Konstruktor 24 von 51

25 Interfaces: Beispiel public class FigurTest extends JFrame { Displayable [] dsp = new Displayable[2]; public void init() { dsp [0] = new Rechteck(10, 20, 100, 60); dsp [1] = new Kreis(10,100,30); Array Array vom vom Interface-Typ Interface-Typ (Displayable) (Displayable) Kennt Kennt die die Methoden Methoden draw draw public double getarea(int dx){ double totarea= 0; for (int i=0; i<dsp.length; i++){ totarea+= ((Figure)dsp[i]).getArea(); return totarea; public void paint(graphics g) { for (int i=0; i<dsp.length; i++){ dsp[i].draw(g); Displayable kennt nicht die Methode Displayable kennt nicht die Methode getarea (von Klasse Figure) getarea (von Klasse Figure) Type-Cast notwendig Type-Cast notwendig 25 von 51

26 Vorteil von Interfaces Es kann etwas dargestellt werden, sobald das Displayable Interface implementiert wird; man muss grundsätzlich nicht von Figure erben. Displayable <<interface>> void draw() implementiert implementiert Fahrzeug <<abstract>> int getachsen()... Figure int x,y,w,h void draw() getarea()... <<abstract>> 26 von 51

27 Kontrollfragen was ist in folgendem Interface falsch public interface SomethingIsWrong { public void amethod(int avalue){ System.out.println("Hi Mom"); was ist in folgendem Interface falsch public interface Marker { 27 von 51

28 Mehrfachvererbung von Interfaces 28 von 51

29 Mehrfachvererbung von Klassen (z.b. C++) Durch Mehrfachvererbung könnten auch komplexe Vererbungsbeziehungen ausgedrückt werden, Bsp: Schiff schwimmen links rechts Flugzeug fliegen links rechts Wasserflugzeug schwimmen fliegen links rechts 29 von 51

30 Probleme der Mehrfachvererbung von Klassen 1) Aufruf von super nicht mehr eindeutig, z.b. super.links(); mögliche Lösung: Spezifikation welche Oberklasse gemeint (Motorschiff)super.links(); 3) Mehrfach geteilte Oberklassen: Diamant Struktur zusätzliche Probleme: welcher Konstruktor über welches Verkehrsmittel wird aufgerufen (Reihenfolge?, wie oft?) 2) Mehrere Oberklassen: welcher Konstruktor wird aufgerufen? mögliche Lösung beide: (Motorschiff)super(); (Motorfahrzeug)super(); Schiff Verkehrsmittel Flugzeug Wasserflugzeug Entscheidung der Java Sprachentwerfer: Mehrfachvererbung von Klassen in Java nicht unterstützen 30 von 51

31 Mehrfachvererbung: Lösung mit Interfaces in der Praxis üblich: Hauptlinie der Vererbung Klasse A Interface B Interface C Seiteneinflüsse (Verhaltensvorschriften) Klasse D Java beschränkt sich auf Einfachvererbung, bietet dafür Interfaces (Signaturen von Methoden),welche dann implementiert werden müssen. 31 von 51

32 Lösung mit Interfaces interface interface Schwimmen{ Schwimmen{ void void schwimmen(); schwimmen(); abstract abstract class class Verkehrsmittel{ Verkehrsmittel{ void void links(); links(); void void rechts(); rechts(); interface interface Fliegen Fliegen { { void void fliegen(); fliegen(); Schwimmen <<interface>> Verkehrsmittel Fliegen <<interface>> Schiff Flugzeug implementiert implementiert Interface Interface weil weil von von Oberklasse Oberklasse geerbt geerbt Wasserflugzeug Mehrfachvererbung Mehrfachvererbung von von Interfaces Interfaces in in Java Java unterstützt unterstützt class Wasserflugzeug extends Flugzeug implements Schwimmen { 32 von 51

33 Mehrfachvererbung von Interfaces im GUI Java erlaubt nur einfache Vererbung! Verwechslungs-Problematik von Methoden bei Mehrfachvererbung wird vermieden Mehrfachvererbung ist aber nachbildbar mit Interfaces, da eine Klasse mehrere Interfaces implementieren kann Beispiel: Das Frame MeinSpiel ist abgeleitet von der Klasse JFrame (Vererbung). Zusätzlich soll es die Interfaces ActionListener und MouseListener implementieren: public class MeinSpiel extends JFrame implements ActionListener, MouseListener{ von 51

34 Vorteile von Interface-Mehrfachvererbung Eine Klasse, die ein Interface implementiert erbt nur die Pflicht die Interface- Methoden selber zu Programmieren Im Gegensatz zur (mehrfach) Klassenvererbung keine Einsparung der Programmierarbeit! Vorteile Eine zweite Interfacehierarchie, unabhängig von "Klassen-Stammbaum" Man kann überall anstelle einer Klasse auch ein Interface verwenden eine Variable vom Schnittstellentyp von jedem Objekt, auf welches sich die Variable bezieht, angenommen wird, es habe diese Schnittstelle implementiert Man kann ein Objekt, dass ein Interface Z implementiert mit einer Variable vom Typ interface Z referenzieren und dort eine dazugehörige Interface-Methode (meth1) aufrufen Das erlaubt Applikationen zu schreiben, die unbekannte Klassen benutzen können (solange diese eine vereinbarte Schnittstelle implementieren) 34 von 51

35 Klassenbibliothek Beispiel: ActionListener MyFrame Implements ActionListener Button B = new Button(); B.addActionListener(this); void actionperformed( ). Button ActionListener listener: // Anmeldung von Listener addactionlistener (ActionListener l) listener = l; ActionListener actionperformed(..) Beliebige Beliebige Klasse Klasse XY XY Implements Implements ActionListener ActionListener Button Button B B bekommt bekommt beim beim AddActionListener(this) AddActionListener(this) die die Referenz Referenz auf auf ein ein beliebiges beliebiges Objekt Objekt (MyFrame). (MyFrame). <<interface>> //Eventbehandlung B (Component) listener.actionperformed(e); Es Es kann kann dort dort aber aber (unabhängig (unabhängig von von Typ Typ des des Objekts) Objekts) die die Methode Methode ActionPerformed ActionPerformed aufrufen aufrufen weil weil für für die die Referenzierung Referenzierung (interne (interne Variable) Variable) der der Interface- Interfaceund und nicht nicht der der Objekt-Typ Objekt-Typ verwendet verwendet wird. wird. 35 von 51

36 Interfaces vs. Abstract Classes Interfaces und abstrakte Klassen werden leicht verwechselt. Es bestehen folgende Unterschiede: Eine abstrakte Klasse kann eine Implementierung von einer oder mehreren Methoden zur Verfügung stellen. Ein Interfaces stellt nie eine Implementierung zur Verfügung. Eine Klasse kann mehrere Interfaces implementieren, aber nur eine abstrakte Klasse erweitern. Ein Interface wir vom Compiler für Überprüfungen benutzt. Im Gegensatz dazu hat eine abstrakte Klasse Vererbung zur Folge, die das Einbinden der entsprechenden Methoden während der Laufzeit nach sich zieht. Eine abstrakte Klasse hat zur Folge, dass ihre abstrakten Methoden in der Unterklasse implementiert werden Vererbung wird angenommen. Aber ein Interface stellt einfach ein Skelett für eine Klasse dar, ohne jegliche Andeutung, dass sie zur Vererbung benutzt wird (Jedoch kann ein Interface Vererbung festlegen) 36 von 51

37 Objekt, Klasse, abstrakte Klasse, Interface Objekt Objekt repräsentiert repräsentiert Gegenstand/Konzept Gegenstand/Konzept in in SW: SW: Zustand Zustand Verhalten Verhalten (Objekt-Methoden) (Objekt-Methoden) Identität Identität extends abstrakte abstrakte Klasse Klasse ist ist halbfertiger halbfertiger Bauplan: Bauplan: abstact abstact class class kann kann nicht nicht instanziiert instanziiert werden werden mindestens mindestens eine eine Methode Methode als als abstrakt abstrakt deklariert deklariert extends new extends extends implements Klasse Klasse ist ist der der Bauplan Bauplan eines eines Objekts: Objekts: class class Datentypen Datentypen der der Attribute Attribute Beschreibung Beschreibung der der Objektmethoden Objektmethoden Beschreibung Beschreibung der der Klassenmethoden Klassenmethoden es es kann kann nur nur von von einer einer Klasse Klasse geerbt geerbt werden: werden: extends extends implements Interface Interface ist ist die die Beschreibung Beschreibung der der Schnittstelle: Schnittstelle: Interface Interface kann kann nicht nicht instanziiert instanziiert werden werden Interfaces Interfaces werden werden von von Klassen Klassen implementiert: implementiert: implements implements es es können können mehrere mehrere Interfaces Interfaces gleichzeitig gleichzeitig implementiert implementiert werden werden 37 von 51

38 Innerer Klassen 38 von 51

39 Innere Klassen Beispiel Innere Klassen: Beispiel1: ActionListener import java.awt.*; import java.awt.event.*; public class InnerDemo extends JFrame { Button hellobutton = new Button("Hello"); TextField textfeld = new TextField(" "); public void init() { add(hellobutton); add(textfeld); hellobutton.addactionlistener(new Bearbeiter()); public void paint(graphics g) { class Bearbeiter implements ActionListener { public void actionperformed(actionevent e){ textfeld.settext("hallo Welt"); Bearbeiter hat Zugriff auf die Bearbeiter hat Zugriff auf die Variablen Variablen der der umgebenden umgebenden Klasse Klasse Der Der Rückgabewert Rückgabewert von von new() new() wird wird direkt direkt als als Referenz Referenz auf auf das das Listener-Objekt Listener-Objekt verwendet verwendet innere Klasse Bearbeiter innere Klasse Bearbeiter 39 von 51

40 Innere Klassen Innere Klassen werden innerhalb einer Klasse definiert: class Außen {. class Innen { Sie sind für alle anderen Klassen nicht sichtbar. keine Probleme mit Namenskonflikten sie können auf Methoden und Variablen im Gültigkeitsbereich der übergeordneten Klasse zugreifen, auf die sie sonst von einer eigenständigen Klasse nicht zugreifen könnten!!! Meist kleine Klassen, die nur für eine sehr eingeschränkte Aufgabe zuständig sind. Anwendungsbeispiel: u.a. Implementierung des Listener Interface wenn der Listener als separate Klasse realisiert wird 40 von 51

41 Anonyme Klassen 41 von 51

42 Anonyme (innere) Klasse als ActionListener import java.awt.*; import java.awt.event.*; public class AnonymDemo extends JFrame { Button hellobutton = new Button("Hello"); TextField textfeld = new TextField(10); public void init() { add(hellobutton); add(textfeld); hellobutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e){ textfeld.settext("hallo Welt"); ); public void paint(graphics g) { Kein Kein Klassenname Klassenname definiert definiert!! anonyme anonyme Klasse Klasse Die Die Klasse Klasse wird wird bei bei der der Erzeugung Erzeugung direkt direkt ausprogrammiert. ausprogrammiert. 42 von 51

43 Anonyme Klasse: Zusammenfassung Sind lokale Klassen ohne Namen, Werden in genau einer Anweisung deklariert, instanziert und benutzt. Anonyme Klassen sind die schnellste Möglichkeit, kleinere Ereignisbehandlungen durchzuführen Anonyme Klassen machen nur dann Sinn, wenn sie nur einmal im Programm benutzt (instanziert) werden. z.b. Pro GUI-Komponente eine (anonyme) Event-Listener-Klasse Bei erfolgreicher Übersetzung erscheinen anonyme Klassen unter der Bezeichnung der umgebenden Klasse mit klasse$1.class, klasse$2.class,... für jede anonyme Klasse im Dateiverzeichnis. 43 von 51

44 Adapter Klassen 44 von 51

45 Adapter-Klassen import java.awt.event.*; class MoveBalloons extends JFrame implements MouseListener { Balloon balloon = new Balloon(); public init { addmouselistener(this); Balloon balloon = new Balloon(); // Implementiere MouseListener public void mouseclicked(mouseevent event ) { balloon.setpos(event.getx(), event.gety()); repaint(); public void mouseentered(mouseevent event ) { public void mouseexited(mouseevent event ) { public void mousepressed(mouseevent event ) { public void mousereleased(mouseevent event ) { Alle Alle Methoden Methoden einer einer Schnittstelle Schnittstelle müssen müssen implementiert implementiert werden werden (auch (auch wenn wenn sie sie leer leer sind) sind) von 51

46 Adapter-Klassen Implementieren dazugehörige Schnittstelle (mit leeren Methoden) Vorteil: weniger Schreibarbeit, man überschreibt nur diejenige Methoden, die nicht leer sein sollen. Es gibt u.a. MouseListener-Interface und MouseAdapter-Klassen Beispiel: eigenständige Java-Applikation mit MouseListener-Adapter public class MoveBalloons extends JFrame { Balloon balloon; public init { this.addmouselistener(new BalloonMover ()); Balloon balloon = new Balloon(); class BalloonMover extends MouseAdapter { public void mouseclicked(mouseevent e) { balloon.setpos(event.getx(), event.gety()); repaint(); innere innere Klasse Klasse BalloonMover BalloonMover 46 von 51

47 Adapter als innere Anonyme Klasse class MoveBalloons extends JFrame Balloon balloon; public init { Balloon balloon = new Balloon(); this.addmouselistener(new MouseAdapter (){ public void mouseclicked(mouseevent e) { balloon.setpos(event.getx(), event.gety()); repaint();... ); 47 von 51

48 Adapterklassen im JDK In Java sind sogenannte Adapterklassen für die meisten EventListener Interfaces 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 vor, dass die 5 Methoden mouseclicked, mouseentered, mouseexited, mousepressed, mousereleased implementiert werden müssen Auch wenn man z.b. nur mouseclicked braucht, müssen die anderen trotzdem geschrieben werden 48 von 51

49 Zusammenfassung Abstrakte Klassen Interfaces (Schnittstelle) Mehrfachvererbung mit Interfaces Interfaces vs. abstrakte Klassen Innere Klassen Anonyme Klassen Adapterklassen 49 von 51

50 Noch Fragen? Gemälde und das Modell 50 von 51

51 Anhang: Interface-Beispiele aus der Java- Klassenbibliothek Interface-Beispiele aus der Java-Klassenbibliothek Die Java-Klassenbibliothek definiert und implementiert selbst eine ganze Reihe von Interfaces. Beispiele: Listeners Erlauben, dass Objekte (wie z.b. Button) in einem (von Aufbau und Typ her unbekannten Objekt) die Listener-Methode (wir zb. actionperformed) aufrufen können. Runnable wird zur Implementierung von Threads verwendet, und zwar insbesondere dann, wenn die betreffende Klasse selbst nicht direkt aus Thread abgeleitet werden kann. deklariert lediglich die Methode run, deren Rumpf den ausführbaren Code des Threads enthält. Der Umgang mit Threads wird in einer späteren Lektion erklärt. Comparable Deklariert die Methode compareto(object o) Erlaubt u.a. dass Arrays von Objekten, die Comparable implementieren automatisch sortiert werden können (mit Arrays.sort) 51 von 51

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

Vererbung, Polymorphismus

Vererbung, Polymorphismus Vererbung, Polymorphismus Einführung Beispiel Automobilbau: Eine Firma produziert eine Limousine Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus Ein Kunde

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

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

Mehr

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

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

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

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

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

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

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

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

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

FHZ. Man unterscheidet ein- und mehrdimensionale Arrays. Bei einem mehrdimensionalen Array sind die Komponenten wiederum Arrays.

FHZ. Man unterscheidet ein- und mehrdimensionale Arrays. Bei einem mehrdimensionalen Array sind die Komponenten wiederum Arrays. 1 Einführung Ein Array (Feld) enthält eine Anzahl von gleichartigen Komponenten (Elemente), die nicht via Namen, sondern über einen Index zugegriffen werden. Komponenten können von einem elementaren Datentyp

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

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

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

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

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

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

Java Einführung Methoden in Klassen

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

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Teil 1: Grundeigenschaften von Rechnern und Software

Teil 1: Grundeigenschaften von Rechnern und Software Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

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

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

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

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 30 2 / 30 JButton, JCheckBox, JRadioButton In Swing existieren drei wesentliche Klassen für Schaltflächen: JButton für normale

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

> Vererbung, Die Austauschbarkeit

> Vererbung, Die Austauschbarkeit Objektorientierte Programmierung (OOP) > Vererbung, Die Austauschbarkeit Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen wie Objekte gezielt kompatibel werden und somit ausgetauscht werden können

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Kapitel 19: Klassen und Unterklassen

Kapitel 19: Klassen und Unterklassen Kapitel 19: Klassen und Unterklassen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

Kurs OPR. Objektorientierte Programmierung

Kurs OPR. Objektorientierte Programmierung Kurs OPR Objektorientierte Programmierung Lektion: 005-Vererbung, Polymorphismus Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1 Vererbung

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

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

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

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

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

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Objektorientierte Programmiersprachen

Objektorientierte Programmiersprachen Objektorientierte Programmiersprachen 1960 Algol 1970 Simula Pascal 1980 Smalltalk C Ada 1990 C++ Eiffel Eine ovale Box symbolisiert eine objektorientierte Programmiersprache. Eine rechteckige Box steht

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen implementieren am Beispiel Suchbaum Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden

Mehr

Programmieren 2 Selbststudium Semesterwoche 4

Programmieren 2 Selbststudium Semesterwoche 4 Programmieren 2 Selbststudium Semesterwoche 4 Kapitel 11.1, 11.2 und 11.3 1. Das Konzept "Interface" ist wichtig und ist uns schon mehrfach begegnet. In welchen Zusammenhängen hatten wir es schon mit "Interfaces"

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen 1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java Vorlesung Programmieren GUIs mit Java Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Bisher... 2 Apple Lisa Office System 3.1 3 Graphical

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

Graphische Programmierung: GUIs: graphical user interfaces

Graphische Programmierung: GUIs: graphical user interfaces Graphische Programmierung: GUIs: graphical user interfaces Ziel: Java -Programmierung und Handhabung von graphischen Benutzeroberflächen (in Applets) mehrere Fenster Fenster-Eigenschaften: aktiv oder inaktiv

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Appletprogrammierung

Appletprogrammierung Appletprogrammierung 362 Übersicht zum Vorlesungsinhalt zeitliche Abfolge und Inhalte können variieren Appletprogrammierung HTML Methoden eines Applets AppletViewer Applikation zu Applet Flackernde Applets

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Toolbar 1. JToolBar 2. Menü 1. JMenuBar 2. JMenu 3. JMenuItem 4. KeyStroke 5. Beispiel JMenuDemo1 6. JCheckBoxMenuItem 7. JRadioButtonMenuItem 8. Beispiel JMenuDemo2 9. JPopupMenu 10. Beispiel

Mehr

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

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2011 3 Objektorientierter Entwurf mit UML und Java Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester

Mehr

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Einbindung der Tastatur

Einbindung der Tastatur Einbindung der Tastatur Auch die Tastatur kann man wie die Maus zur interaktiven Programmsteuerung verwenden. Bei der Maus ist stets klar, welche grafische Komponente bei einem Klick oder einer Bewegung

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Technische Universita t Mu nchen Institut fu r Informatik

Technische Universita t Mu nchen Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. Dr. B. Rost, L. Richter Hinweis: WS 15/16 U bungsblatt

Mehr