FHZ. mycar modell = DöSchwo leistung = 2 PS. Personenwagen modell leistung anzahlpersonen starten() beschleunigen() bremsen() anzahlpersonen = 5
|
|
- Hella Schmitt
- vor 7 Jahren
- Abrufe
Transkript
1 1 Einleitung Sie haben die Begriffe Klasse und Objekt bereits kennen gelernt. Sie wissen, dass eine Klasse eine Beschreibung für gleichartige Objekte ist. Sie definiert, welche Attribute und Operationen alle Objekte besitzen, die zu dieser Klasse gehören. Zum Beispiel können wir eine Klasse Personenwagen definieren. Die Klasse definiert die gemeinsamen Attribute und Operationen aller Autos. Anhand der Klasse Personenwagen können wir dann beliebig viele Autos, oder eben Personenwagen-Objekte, erzeugen. Im Klassendiagramm könnte das so aussehen: Personenwagen modell leistung anzahlpersonen starten() beschleunigen() bremsen() mycar modell = DöSchwo leistung = 2 PS anzahlpersonen = 5 othercar modell = Mercedes 500 leistung = 200 PS anzahlpersonen = 5 So weit, so gut. Was nun, wenn wir eine Klasse für Lastwagen schreiben sollen? Müssen wir dann nicht Attribute und Operationen, welche in der Klasse Personenwagen schon definiert sind, nochmals definieren? Zum Beispiel haben ja auch Lastwagen einen Motor mit einer Leistung. Dies ist ein Attribut, welches für alle Motorfahrzeuge gilt. Was uns fehlt, ist ein übergeordnetes, allgemeineres Konzept. Seite 1/31
2 2 Klassenhierarchien Die Lösung für unser Problem sieht folgendermassen aus: Wir definieren zuerst eine Klasse Motorfahrzeug. Diese enthält alle gemeinsamen Attribute und Operationen von Motorfahrzeugen. Im Klassendiagramm: Motorfahrzeug modell leistung starten() beschleunigen() bremsen() Mit Hilfe dieser Klasse können wir nun unsere bestehende Klasse Personenwagen sowie die neue Klasse Lastwagen auf einfachere Weise definieren: Wir sagen nur noch, welche zusätzlichen Attribute und Eigenschaften diese Klassen haben. Gleichzeitig legen wir fest, dass die Klassen auch über sämtliche Eigenschaften der Klasse Motorfahrzeug verfügen. Seite 2/31
3 Wieder in UML: Der Pfeil von der Klasse Personenwagen zur Klasse Motorfahrzeug symbolisiert, dass die Klasse Personenwagen neben ihren eigenen Attributen und Operationen auch über all jene der Klasse Motorfahrzeug verfügt. Man sagt, die Klasse Personenwagen erbt die Attribute und Operationen von der Klasse Motorfahrzeug. Man sagt auch, die Klasse Personenwagen ist von der Klasse Motorfahrzeug abgeleitet oder die Klasse Personenwagen erweitert die Klasse Motorfahrzeug. Motorfahrzeug ist die Superklasse und Personenwagen ist die Subklasse. Die drei Klassen bilden eine Klassenhierarchie. Geht man in der Hierarchie nach oben, so kommt man zu immer allgemeineren Klassen. Ein Personenwagen ist z.b. ein spezielles Motorfahrzeug; man spricht deshalb auch von einer is-a-beziehung. Geht man nach unten, findet man immer spezialisiertere Klassen. Seite 3/31
4 Aufgabe 1: a) Erweitern Sie obige Klassenhierarchie um folgende Elemente: - Eine Klasse für Motorräder - Eine Klasse für Cabriolets Zeichnen Sie ein paar Attribute und Operationen ein, welche typisch für die beiden neuen Klassen sind. b) Überlegen Sie sich, wie eine Klasse Fahrrad in die Klassenhierarchie integriert werden könnte. Zeichnen Sie ihren Vorschlag im Klassendiagramm ein. Seite 4/31
5 3 Vererbung versus Aggregation Die Gefahr besteht, mit der Zeit zu sehr grossen und unübersichtlichen Klassenhierarchien zu kommen. Beispielsweise könnte man versucht sein, zwischen Motorfahrzeugen mit Elektroantrieb und solchen mit Verbrennungsmotor zu unterscheiden. Das würde aber zu einer Verdoppelung von Klassen führen, denn es gibt ja für beide Antriebsarten Personenwagen. Hier wäre vielmehr ein Aggregations-Beziehung (vgl. has-a- Beziehung) zwischen der Klasse Motorfahrzeug und einer Klasse Motor angezeigt. Die Klasse Motor könnte dann ihrerseits wieder abgeleitet werden. In UML: Motorfahrzeug Motor leistung Elektromotor Verbrennungsmotor Wichtig zu wissen ist, dass es nicht DAS Klassendiagramm für ein bestimmtes Problem gibt! Die möglichen Lösungen sind meist sehr vielfältig und Modellieren ist ein iterativer, d.h. sich wiederholender Prozess. Seite 5/31
6 4 Umsetzung in Java Wie man in Java eine Klasse definiert, das wissen Sie bereits. Neu für Sie ist, wie man in Java eine Klasse von einer anderen ableitet. Und eigentlich haben Sie auch das schon x-mal gemacht: class MyApplet extends Applet { Mit dem Schlüsselwort extends kann man definieren, von welcher Klasse eine neue Klasse abgeleitet sein soll. In UML: Seite 6/31
7 Das Motorfahrzeug-Beispiel würde demnach folgendermassen in Java umgesetzt: class Motorfahrzeug { public String modell; // Vorsicht mit public! public double leistung; public void starten() { class Personenwagen extends Motorfahrzeug { public int anzahlpersonen; // Vorsicht mit public! Seite 7/31
8 5 Zugriff auf Instanzvariablen und Methoden der Superklasse(n) 5.1 Schlüsselwort public Aus abgeleiteten Klassen kann grundsätzlich auf alle public- Elemente der Superklasse (und wiederum derer Superklasse etc.) zugegriffen werden, wie wenn diese in der eigenen Klasse definiert wären. Im obigen Beispiel kann also eine Methode in der Klasse Personenwagen auf die Instanzvariablen modell und leistung zugreifen, welche in Motorfahrzeug deklariert sind. Ebenso kann sie die Methode starten() direkt aufrufen: class Personenwagen extends Motorfahrzeug { public void demomethode() { leistung = ; starten(); Seite 8/31
9 5.2 Schlüsselwort private Hingegen kann aus einer abgeleiteten Klasse auf keine private- Elemente der Superklasse (weder Instanzvariablen noch Methoden) zugegriffen werden. Guter Programmierstil ist, Instanzvariablen möglichst als private zu deklarieren! Zugriffe auf die Instanzvariablen erfolgen dann ausschliesslich über entsprechende set- und get- Zugriffsmethoden, welche auch allfällige Integritätsbedingungen sicherstellen. Zudem kann so gegebenenfalls die interne Repräsentation einfach und lokal in der Klasse geändert werden. class Motorfahrzeug { private String modell; private double leistung; public void setleistung(double l) { if (l > 0.0) leistung = l; public void starten() { class Personenwagen extends Motorfahrzeug { public void demomethode() { setleistung(2000.0); starten(); Seite 9/31
10 5.3 Schlüsselwort protected Die Zugriffsregel für private-elemente kann zu einschränkend sein. Aus diesem Grund gibt es in Java das Schlüsselwort protected, welches erlaubt, Elemente einer Klasse für die abgeleiteten Klassen zugänglich zu machen, gegen "aussen" aber zu schützen. Fehlt ein Schlüsselwort private, protected oder public, so wird der Zugriff gemäss untenstehender Tabelle geregelt. Wie Sie sehen, wird dann der Zugriff relativ restriktiv gehandhabt. Zugriff von: eigener Klasse Klasse im gleichen Package Unterklasse aus anderem Package Nicht-Unterklasse aus anderem Package private ja nein nein nein - ja ja nein nein protected ja ja ja* nein public ja ja ja* ja* (*) Die Klasse muss dann natürlich importiert sein. Bemerkung: Ein Package fasst Klassen zusammen, die eng miteinander kooperieren oder die zumindest konzeptionell zusammengehören. Die Klassen müssen dazu auch im gleichen Verzeichnis gespeichert sein (siehe später). Seite 10/31
11 Aufgabe 2: Wir möchten eine Klassenhierarchie für Grafiken entwickeln (z.b. für ein Grafikprogramm). Eine Grafik soll aus Kreisen oder Rechtecken bestehen. Beides sind Figuren. Gesucht sind Klassen, welche die wesentlichen Informationen sowie die notwendigen Methoden gemäss folgender Beschreibung enthalten: Das Rechteck ist durch seine Breite und Höhe definiert, der Kreis durch seinen Radius. Kreis und Rechteck ist gemeinsam, dass sie sich an einem bestimmten Ort auf dem Bildschirm befinden. Dieser ist definiert durch die linke, obere Ecke des Rechtecks oder eines gedachten, den Kreis umgebenden Rechtecks. Beide haben eine Methode display(), um sich auf dem Bildschirm zu zeichnen, sowie einen Konstruktor, welcher die nötigen Parameter für eine vollständige Festlegung eines Kreis- bzw. eines Rechteck-Objekts aufweist. Schliesslich soll eine Methode moveto() zum Verschieben von Kreis- und Rechteck-Objekten an einen neuen Ort vorhanden sein. Die Methode hat als Parameter die Koordinaten des neuen Ortes. Zeichnen Sie ein Klassendiagramm und versuchen Sie, die beiden Klassen Rectangle und Circle sowie die übergeordnete Klasse Figure gemäss den obigen Angaben zu programmieren. Überlegen Sie sich, welche Instanzvariablen und Methoden in welche Klassen gehören. Die Regel heisst: Gemeinsame "Dinge" gehören in die Superklasse. Studieren Sie die Unterlagen noch nicht weiter, denn Sie wollen ja selber eine Lösung erarbeiten! Seite 11/31
12 Seite 12/31
13 Klassendiagramm in UML: Figure -xpos:int -ypos:int +Figure(x:int, y:int) +moveto(x:int, y:int):void +setxpos(x:int):void +setypos(y:int):void +getxpos():int +getypos():int Circle -radius:int Rectangle -width:int -height:int +Circle(x:int, y:int, r:int) +setradius(r:int):void +getradius():int +display(g:graphics):void +Rectangle(x:int, y:int, w:int, h:int) +setsize(w:int, h:int):void +getwidth():int +getheight():int +display(g:graphics):void Bemerkung: Obiges Klassendiagramm hält explizit Sichtbarkeit, Datentypen, formale Parameter sowie die Datentypen der Rückgabewerte fest. Die UML schreibt diese Vollständigkeit nicht vor. Entsprechend dem Kontext, in dem das Klassendiagramm verwendet wird, kann man teilweise oder ganz auf diese Präzisierungen verzichten. Seite 13/31
14 Java-Sourcecode: class Figure { private int xpos; private int ypos; public Figure(int x, int y) { xpos = x; ypos = y; public void moveto(int x, int y) { xpos = x; ypos = y; public void setxpos(int x) { xpos = x; public void setypos(int y) { ypos = y; public int getxpos() { return xpos; public int getypos() { return ypos; Seite 14/31
15 import java.awt.graphics; class Circle extends Figure { private int radius; public Circle (int x, int y, int r) { super(x, y); radius = r; public void setradius(int r) { radius = r; public int getradius() { return radius; public void display(graphics g) { g.drawoval(getxpos(), getypos(), 2*radius, 2*radius); Seite 15/31
16 import java.awt.graphics; class Rectangle extends Figure { private int width; private int height; public Rectangle(int x, int y, int w, int h){ super(x, y); width = w; height = h; public void setsize(int w, int h) { width = w; height = h; public int getwidth() { return width; public int getheight() { return height; public void display(graphics g) { g.drawrect(getxpos(), getypos(), width, height); Seite 16/31
17 Bemerkungen: Alle Instanzvariablen sind private deklariert. Zugriffe erfolgen ausschliesslich über set- und get-zugriffsmethoden. Jedes Rechteck-Objekt ist auch ein Figur-Objekt. Ebenso ist jedes Kreis-Objekt ein Figur-Objekt. Erstere sind Spezialisierungen von letzteren. Deshalb muss der Konstruktor Rectangle() in einem ersten Schritt ein Figur-Objekt konstruieren und darf erst in einem zweiten Schritt rechteckspezifische Belange berücksichtigen! Mit super (vgl. super(), super.variable, super.methode()) kann explizit Bezug auf die Oberklasse genommen werden. So ruft super(x, y) den entsprechenden Konstruktor der Oberklasse Figure auf. Besitzt die Oberklasse gar keinen explizit deklarierten Konstruktor, so ist ein super()-aufruf nicht zwingend notwendig. Es wird dann sozusagen ein leerer Default-Konstruktor aufgerufen. Besitzt die Oberklasse einen explizit deklarierten Konstruktor ohne Parameter, so ist ein super()-aufruf ebenfalls nicht zwingend erforderlich; er wird in diesem Fall automatisch aufgerufen. Aufgabe 3: Angenommen die Instanzvariablen xpos und ypos der Klasse Figure seien nur protected deklariert. Schreiben Sie für diesen Fall nochmals den Quellencode für die Klassen Rectangle und Circle. Seite 17/31
18 6 Anwendung der eigenen Grafik-Klassen Die Klassen, welche wir in der obigen Aufgabe entwickelt haben, können wir jetzt zum Beispiel in einem Applet einsetzen: import java.awt.*; import java.applet.applet; public class Figurlet extends Applet { private Rectangle myrectangle; private Circle mycircle; public void init() { myrectangle = new Rectangle(100,100,20,40); mycircle = new Circle(200,100,30); public void paint(graphics g) { myrectangle.display(g); mycircle.display(g); Seite 18/31
19 Schliesslich könnten wir in unserem Applet auch die moveto()- Methoden aufrufen (z.b. als Antwort auf ein Event): myrectangle.moveto(newx, newy); mycircle.moveto(newx, newy); Bemerkung: Beachtenswert ist, dass wir die Methode moveto() bei einem Rechteck- bzw. bei einem Kreis-Objekt aufrufen. Effektiv ist die Methode aber in der Klasse Figure definiert. Rechteck- und Kreis-Objekt sind aber gleichzeitig auch Figur-Objekte! Klassendiagramm in UML: Seite 19/31
20 7 Zuweisung von Objekten zu Referenzvariablen Ein Objekt einer bestimmten Klasse (vgl. Rectangle) darf man jederzeit einer anderen Referenzvariablen derselben Klasse zuweisen (vgl. rect2). Auch dürfen gleichzeitig mehrere Referenzvariablen ein und dasselbe Objekt referenzieren (vgl. rect2 und rect3). Der Spezialwert null für "kein Objekt" kann immer zugewiesen werden. Rectangle rect1 = new Rectangle(10,10,20,30); Rectangle rect2 = rect1; Rectangle rect3 = rect2; rect1 = null; Gemäss Vererbungshierarchie gilt, dass ein Rechteck-Objekt gleichzeitig auch ein Figur-Objekt ist. Deshalb ist es auch möglich, ein Rectangle-Objekt einer Figure-Referenzvariablen zuzuweisen. Rectangle rect = new Rectangle(10,10,20,30); Figure fig = rect; Allerdings sind wir jetzt bezüglich der Möglichkeiten eingeschränkt, welche wir mit fig haben! Wichtig zu wissen ist, dass ein Objekt seine Klassenzugehörigkeit und seine Interna IMMER beibehält, auch wenn es von einer Referenzvariablen einer Oberklasse referenziert wird. (Es findet also keine Umwandlung der internen Darstellung statt, wie das bei der Zuweisung von Werten elementarer Datentypen passieren kann.) Allerdings ändert sich die Betrachtungsweise des Objektes; man betrachtet das Objekt sozusagen durch die "Brille der Oberklasse": Seite 20/31
21 Über fig kann nur auf die public Methoden und Instanzvariablen der Klasse Figure zugegriffen werden, denn fig kann ein Rectangle-, Circle- oder Figure-Objekt referenzieren! Weiter ist ein Zugriff auf Methoden und Instanzvariablen von Oberklassen möglich, falls diese zugänglich sind. rect = fig; // => Compilerfehler!! rect = (Rectangle) fig; // => korrekt Weil fig auch ein Circle-Objekt referenzieren kann, ist die erste Zuweisung nicht erlaubt! Der Compiler wird mit einer Fehlermeldung reagieren, weil man eine "allgemeinere Referenz" einer "spezielleren Referenz" zuweisen will. Die zweite Zuweisung mit dem Cast ist hingegen korrekt. Der Cast ist sozusagen eine Zusicherung/ein Versprechen, dass fig ein Rectangle-Objekt referenziert und die Zuweisung demzufolge möglich ist. Stellt sich zur Laufzeit heraus, dass dem nicht so ist, wird ein Laufzeitfehler bzw. eine Exception die Folge sein! Seite 21/31
22 8 Überschreiben von Methoden und Polymorphismus In unserem Beispiel fällt auf, dass beide Klassen Rectangle und Circle je eine Methode display() haben. Von der Idee her machen beide Methoden dasselbe, sie zeichnen ihr Objekt. Eigentlich könnte man wünschen, dass jede Figur eine display()-methode hat. Wie die Methode eine Figur zeichnet, hängt dann von der konkreten Situation bzw. vom konkreten Objekt ab. Ist die Figur ein Rechteck wird ein Rechteck gezeichnet etc. Genau das kann Java: Wir definieren zusätzlich auch in der Klasse Figure eine Methode display(). Diese Methode wird genau dann aufgerufen, falls fig ein Figur-Objekt referenziert. Referenziert fig aber ein Objekt einer Unterklasse, z.b. ein Kreis-Objekt, so wird automatisch die korrespondierende Methode display() der Unterklasse Circle aktiviert. class Figure { public void display(graphics g) { g.drawstring("i'm a Figure.", xpos, ypos); Seite 22/31
23 class Circle extends Figure { public void display(graphics g) { g.drawoval(getxpos(), getypos(), 2*radius, 2*radius); class Rectangle extends Figure { public void display(graphics g) { g.drawrect(getxpos(), getypos(), width, height); Die Methode display() ist sowohl in der Klasse Figure wie auch in den Klassen Circle und Rectangle definiert. Die Methodenköpfe (Signaturen) müssen dabei absolut gleich sein! Man nennt dies Überschreiben einer Methode. Seite 23/31
24 Damit können wir nun in einer Anwendung folgendes tun: Figure fig1 = new Figure(10, 120); Figure fig2 = new Rectangle(10, 10, 20, 30); Figure fig3 = new Circle(10, 60, 40); public void paint(graphics g) { fig1.display(); fig2.display(); fig3.display(); fig1 bis fig3 sind drei Referenzvariablen für Figur-Objekte. Ihnen werden je ein Figure-, Rectangle- und Circle-Objekt zugewiesen. In der paint()-methode wird bei allen drei Referenzvariablen die display()-methode aufgerufen. Weil die Methode display() in den abgeleiteten Klassen überschrieben ist, geschieht folgendes: Es wird bei allen drei Aufrufen immer diejenige Variante von display() ausgeführt, welche zur Klasse bzw. zum Objekt gehört, das referenziert wird. fig1.display() => Text ausgeben fig2.display() => Rechteck zeichnen fig3.display() => Kreis zeichnen Dies ist ein sehr mächtiges Konzept und wird in der objektorientierten Programmierung oft angewendet. Es erlaubt, unabhängigen Code zu schreiben. Wenn eine neue Figur-Klasse, z.b. für Dreiecke, eingeführt wird, so sind die Änderungen am bestehenden Code minimal. Das Konzept segelt auch unter dem Begriff Polymorphismus oder frei übersetzt "Vielgestaltigkeit". Seite 24/31
25 Klassendiagramm in UML: Applet Figurlet has-a 3 Figure +moveto() +display() is-a is-a is-a Rectangle Circle +display() +display() 9 Abstrakte Klassen Ist die Sachlage so, dass Objekte der Klasse Figure keinen Sinn machen, so kann die Klasse als abstract deklariert werden. Es ist dann nicht mehr möglich, Objekte dieser Klasse zu instanzieren. Damit wird auch die Methode display() in der Klasse Figure nie mehr zur Ausführung gelangen. Trotzdem macht es Sinn, eine abstrakte Methode display() bzw. den entsprechenden Methodenkopf in der Klasse Figure zu deklarieren. Damit wird zum Ausdruck gebracht, dass sämtliche Figur-Objekte eine Methode display() besitzen, die allerdings in den Unterklassen noch implementiert werden müssen. Die abstrakte Klasse Figure garantiert damit ein bestimmtes Verhalten für sämtliche Figur-Objekte. Seite 25/31
26 Randbemerkung: Ein Interface bzw. eine Schnittstellenklasse ermöglicht Ähnliches, aber ohne Gebrauch der klassischen Vererbung (siehe später). Klassendiagramm in UML: Figure -xpos:int -ypos:int +Figure(x:int, y:int) +moveto(x:int, y:int):void +setxpos(x:int):void +setypos(y:int):void +getxpos():int +getypos():int +display(g:graphics):void Circle -radius:int Rectangle -width:int -height:int +Circle(x:int, y:int, r:int) +setradius(r:int):void +getradius():int +display(g:graphics):void +Rectangle(x:int, y:int, w:int, h:int) +setsize(w:int, h:int):void +getwidth():int +getheight():int +display(g:graphics):void Seite 26/31
27 abstract class Figure { public abstract void display(graphics g); class Circle extends Figure { public void display(graphics g) { g.drawoval(getxpos(), getypos(), radius, radius); class Rectangle extends Figure { public void display(graphics g) { g.drawrect(getxpos(), getypos(), width, height); Figure fig1 = new Rectangle(10, 10, 20, 30); Figure fig2 = new Circle(10, 60, 40); public void paint(graphics g) { fig1.display(); fig2.display(); Seite 27/31
28 10 Beispiel AWT Abstract: allgemeiner plattformunabhängiger Ansatz Window: Umgang mit Fenstersystemen Toolkit: sehr grosse Klassenbibliothek 10.1 Bildschirmausgabe in Windowsystemen "Nicht der Programmierer bestimmt, wann etwas auf dem Bildschirm dargestellt wird, sondern der User." Entsprechend bestimmt nicht das Programm, wann etwas auf dem Bildschirm dargestellt werden soll, sondern das Windowsystem. Konsequenzen: Das Programm muss zu jedem Zeitpunkt in der Lage sein, die komplette Bildschirmausgabe zu rekonstruieren. Das Programm muss das Windowsystem über neu anzuzeigende Bildschirminhalte informieren. Das Windowsystem ruft die paint()-methode eines Applets oder Programms auf, sobald das Applet gezeichnet werden soll. Das Applet oder Programm ruft seine repaint()-methode auf, sobald es wünscht, neu gezeichnet zu werden. Seite 28/31
29 10.2 Wichtige Klassen für das elementare Zeichnen Graphics: Stellt die eigentlichen Zeichenoperationen zur Verfügung. Graphics-Objekte dienen als eine Art "Zeichenblatt". Sie werden nicht selbst instanziert, sondern vom Ausgabegerät zur Verfügung gestellt (z.b. Bildschirm, Drucker). Zusätzlich speichert die Klasse den aktuellen Zustand des Gerätes (z.b. Zeichenfarbe, Font, Clipping-Region). Color: Farben Font: Schrifttypen Point: Punkt mit Koordinaten x, y Dimension: Grössenangabe mit width und height Rectangle: Rechteck Polygon: n-eck Image: abstrakte Klasse für Bitmap-Grafiken AWT-Klassenhierarchie (Ausschnitt 1): Object equals():boolean Graphics Color Font Point Dimension Rectangle Polygon Image drawline(): void getfont(): Font black: Color darker():color name:string size:int getname():string x:int y:int getx():double move():void height:int width:int equals():boolean setsize():void height:int width:int move():void resize():void npoints:int xpoint:int[] addpoint():void inside():boolean SCALE_FAST:int getheight():int Seite 29/31
30 10.3 Wichtige Klassen für GUIs Component: Das sind die Grundbausteine für ein GUI. Alles, was man sieht, ist ein Component! Die Klasse Component hat sehr viele Methoden. Im Zweifelsfalle hier eine Methode suchen! Canvas: Die einfachste Zeichenoberfläche (vgl. wie Applet ohne Funktionalität). Besitzt im Wesentlichen ein Graphics-Objekt. Container: Ein Behälter für Components. Die Anordnung der Bildelemente wird durch das Layout des Containers bestimmt. Typische Container sind Panel und Window. Ermöglicht eine hierarchische Gestaltung des GUI. Panel: Ein Objekt zum Zusammenfassen grösserer Sinneseinheiten in einem Fenster. Window: Ein einfaches Fenster-Objekt. Frame: Ein "richtiges" Fenster-Objekt. Hat einen Titelbalken, kann vom Benutzer verkleinert und vergrössert werden, kann ein Menü haben usw. (vgl. Java-Programme). Button: Druckknopf Checkbox: Ankreuzfeld Choice: Auswahlmenü (Pull-Down) List: Auswahlmenü Label: statischer Text Scrollbar: Schieberegler TextField: Texteingabe (einzeilig) TextArea: Texteingabefeld (mit mehreren Zeilen) Seite 30/31
31 AWT-Klassenhierarchie (Ausschnitt 2): Object equals():boolean Component paint():void repaint():void update():void Checkbox Choice Container Button Canvas List Label TextComponent Scrollbar getlabel():string setstate():void additme():void remove():void add():void remove():void paint():void setlayout():void getlabel():string setlabel():void paint():void getrows():int select():void CENTER:int settext():void gettext():string select():void VERTICAL:int getminimum():int getvalue():int Panel ScrollPane Window SCROLLBARS_ NEVER:int addnotify():void setlayout():void show():void toback():void Applet Dialog Frame init():void setmodal():void settitle():void setmenubar():voi d FileDialog LOAD:int READ:int getfile():string getmode():int Ein Container ist bekanntlich ein Behälter (vgl. Aggregat) für Components (sogenanntes Composite-Entwurfsmuster): 0..n Component paint():void repaint():void update():void Container Button Label Scrollbar add():void remove():void paint():void setlayout():void getlabel():string setlabel():void CENTER:int settext():void VERTICAL:int getminimum():int getvalue():int Panel addnotify():void Applet init():void Seite 31/31
Konzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Objekte Klassen Nachrichten Kapselung Einführung Vererbung heute! Konzepte objektorientierter Programmierung Was ist ein Objekt? Was ist eine Klasse? Was sind
MehrVererbung. 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
MehrBeispiel: 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
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrAbstrakte 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
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrGraphische 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
MehrVererbung, 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
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrObjektorientierte 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
MehrAnwendungsentwicklung 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,
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrAlgorithmen 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
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrProbeklausur: 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,
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrProgrammieren 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
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Mittwoch Inhaltsübersicht Eigene Klassen definieren Vererbung Abstrakte Klassen Schnittstellen Polymorphismus Designbeispiele: Java-AWT Strings in Java Funktionen und Funktionsplotter
MehrJava 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Überschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrSilke 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
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
MehrAufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik)
Übungen zu Objektorientierte Programmierung in Java PD Dr. Wolfgang Goerigk Sommersemester 2009 Musterlösungen Serie 5 Aufgabe 5.1 (Laboraufgabe, Nocheinmal ein wenig Graphik) Die Klasse java.awt.container
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrTafelü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
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrKurs 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
Mehr14 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
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
Mehr14 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.
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Dienstag Inhaltsübersicht Variablen: Membervariablen und lokale Variablen Referenzvariablen: Arrays und Objekte anlegen Definition von Funktionen: Methoden Konstruktoren
MehrJava - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov
Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse
MehrVererbung 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
MehrEinfü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
Mehr4. Hierarchische Datenstrukturen in OO-Systemen
4. Hierarchische Datenstrukturen in OO-Systemen OO-Graphics in Java Hierarchische Datenstrukturen 89 Hierarchien in OO-Systemen Objektorientiertes Programmieren bietet zahlreiche Strukturierungs-Möglichkeiten
MehrEinstieg in die Informatik mit Java
1 / 18 Einstieg in die Informatik mit Java Applets Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 18 1 Einführung 2 Sicherheits-Maßnahmen 3 Ereignisgesteuerte Programmierung
MehrMethoden 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
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrSilke 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
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrObjektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
MehrUniversitä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
MehrKlassen 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
Mehr3. 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
MehrJavakurs 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
MehrJava 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
MehrObjektorientierte 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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrKapitel 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
MehrAlgorithmen 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
MehrVererbung. Oberklassen und Unterklassen
Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 19. 25. Februar 2003 Dienstag Inhaltsübersicht Variablen: Membervariablen und lokale Variablen Referenzvariablen: Arrays und Objekte anlegen Definition von Funktionen: Methoden Konstruktoren
MehrProgrammieren 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:
MehrEAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ
EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,
MehrApplets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
MehrGrundlagen 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
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrGUI-Programmierung mit Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 11: GUI 1: AWT (1) GUI-Programmierung mit Java.
Universität Osnabrück 1 GUI-Programmierung mit Java 3 - Objektorientierte Programmierung in Java Vorlesung 11: GUI 1: AWT (1) SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund Alle unsere bisherigen Anwendungsbeispiele
MehrAbgabe: 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,
MehrWas du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.
Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg
Mehr2. Vererbung und Kapselung
2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL
MehrJAVA für Nichtinformatiker - Probeklausur -
JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils
MehrHumboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt
Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung Prof. Redlich 6. Übungsblatt 21 (+4) Punkte Abgabe bis 31.01.2010 (08:00 Uhr) über GOYA Aufgabe
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrAllgemeines - Prinzipien
OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen
MehrGetName(), 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
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 19. 25. Februar 2003 Mittwoch Inhaltsübersicht Eigene Klassen definieren Vererbung Abstrakte Klassen Schnittstellen Polymorphismus Designbeispiele: Java-AWT Strings in Java Funktionen und
MehrIT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1
IT I: Heute Nachbetrachtung Wissensüberprüfungen Einführung Vererbung Roboter in becker.robots 7.11.2017 IT I - VO 5 1 Organisatorisches Wissensüberprüfung diese Woche wieder am Rechner Wer die 5. Wissensüberprüfung
MehrKurs OPR. Objektorientierte Programmierung
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 Inhaltsverzeichnis
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrProgrammieren 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
MehrObjektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java
9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet
MehrTheorie 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
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrInformatik 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
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1
Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
Mehr