Design Patterns I. Design Muster eine Einführung. Prof. Dr. Nikolaus Wulff
|
|
- Paulina Vogt
- vor 6 Jahren
- Abrufe
Transkript
1 Design Patterns I Design Muster eine Einführung Prof. Dr. Nikolaus Wulff
2 Agenda Zur Historie von Design Mustern Die Entwicklung von Lexi Was ist ein Design Muster Klassifizierung von Design Mustern Die wichtigsten Design Muster Vom Design Muster zur Implementierung Prof. Dr. Nikolaus Wulff 2
3 Historie der Desing Patterns Christopher Alexander (1977): A Pattern Language wie können Standardlösungen immer wiederkehrender Innenarchitekturprobleme sprachlich formuliert werden? E. Gamma, R. Helm, R. Johnson, J. Vlissides(1995): Design Patterns Elements of reusable OO-Software der bis heute maßgebende Katalog mit 23 Design Patterns, ein Klassiker Viele weitere Muster Bücher folgten... Design Patterns gehören heute zum Grundvokabular eines jeden SW-Ingenieurs. Prof. Dr. Nikolaus Wulff 3
4 Eine Analogie Schriftsteller entwickeln ihre Handlungen nie von Grund auf neu. Bestimmte Stereotypen und Muster tauchen immer wieder in Variationen auf: tragisch gefallener Held unglückliche Liebe grausame(r) Stiefmutter/vater An Hand dieser existierenden Muster lässt sich leicht eine neue Geschichte entwickeln. Dies vereinfacht das Geschäft... Prof. Dr. Nikolaus Wulff 4
5 Wie lernt man Schachspielen? Lerne Regeln: Figurennamen und Zugmöglichkeiten Lerne Prinzipien: relative Figurenwert, strategischer Wert des Brettzentrums, Angriffsvermögen, etc Lerne von Spielen der Meister: Spielzüge und deren Anwendungssituationen Es gibt hunderte von Eröffnungen und Strategien Diese bilden Muster... Prof. Dr. Nikolaus Wulff 5
6 Wie lernt man Softwaredesign? Lerne Regeln: Programmiersprachen und Syntax, Algorithmen und Datenstrukturen Lerne Prinzipien: funktionales und modulares Programmieren, objektorientiertes Programmieren Lerne von den Meistern: Gute und erprobte Designs der Meister, passend zu immer wiederkehrenden Problemstellungen, sind inzwischen aufgeschrieben und als Baukasten vorhanden. Prof. Dr. Nikolaus Wulff 6
7 Beschreibung von Mustern Name jedes Muster erhält einen kurzen, eindeutigen und prägnanten Namen zur Identifizierung. Absicht was ist der Sinn und Zweck des Musters Problem welches Problem wird durch das Muster gelöst Lösungsidee wie lautet die generische Idee zur Lösung des Problems Struktur wie ist die Struktur der Lösung als UML Diagramm Prof. Dr. Nikolaus Wulff 7
8 Beschreibung von Mustern (2) Beteiligte Welches sind die beteiligten Klassen und ihre Rollen im Muster Zusammenspiel Erklärt, wie die Teilnehmer zur Erfüllung der gemeinsamen Aufgabe zusammenarbeiten. Anwendbarkeit Beschreibt Situationen in denen das Muster sinnvoll eingesetzt werden kann. Folgen Was sind die Vor- und Nachteile des Musters Prof. Dr. Nikolaus Wulff 8
9 Beschreibung von Mustern (3) Implementation Diskutiert wichtige Details zur Codierung des Musters. Häufig werden auch sprachspezifische Aspekte benannt. Beispielcode Rudimentäre, lauffähige Codefragmente zur Veranschaulichung. Bekannte Verwendung Verweist auf unterschiedliche erfolgreiche Anwendungen des Musters Verwandte Muster Bezug zu anderen Mustern, die auch zur Lösung dienen könnten und Diskussion der Unterschiede. Prof. Dr. Nikolaus Wulff 9
10 Lexi eine Fallstudie Der Dokumenteneditor Lexi soll entwickelt werden. Lexi ist ein WYSIWIG Editor ( What-You-See-Is- What-You-Get ). Die wesentlichen 7 Herausforderung sind: Dokumentenstruktur Formatierung Erweiterbare Benutzungsschnittstelle Look-and-Feel Verschiedene Fenster- und Betriebsysteme Komplexe und doch einheitliche Handhabung Rechtschreibprüfung und Silbentrennung Prof. Dr. Nikolaus Wulff 10
11 Anforderungen an Lexi Verwaltung der physischen Struktur Visuelle Präsentation des Dokuments Abbildung der Bildschirmposition auf die Elemente der internen Repräsentation. => Kontexbezogenes Reagieren. Randbedingungen: Text und Grafik sollen gleich behandelt werden. Einzelne Elemente und komplexe Gruppen von Objekten sollen gleich behandelt werden können. Ausnahmen: Rechtschreibprüfung,... Prof. Dr. Nikolaus Wulff 11
12 Dokumentenstruktur Dokumente bestehen aus elementaren Elementen wie Wörtern, Zeichen, Linien, Rechtecken etc. Ein Textverarbeitungssystem sieht aber auch die Ebene der physischen Strukturen Zeilen, Spalten, Tabellen, Abbildungen und weitere Substrukturen. Ein Benutzer soll all diese Strukturen direkt als zusammenhängende Entitäten bearbeiten können. Eine Tabelle erscheint bei einer Copy & Paste Operation als eine logische Entität und nicht als eine Ansammlung von einzelnen Primitiven. Benötigt wird eine rekursive Komposition der Dokumente. Prof. Dr. Nikolaus Wulff 12
13 Glyph als Composite Pattern Dokumentenstruktur per Composite-Pattern. Alle Elemente sind vom Typ Glyph. Composite Dieser enthält als abstrakte Klasse (oder Interface) die gemeinsame Schnittstelle. Frage: Wie werden Images (Jpeg etc.) zu Glyphs? Prof. Dr. Nikolaus Wulff 13
14 Glyph Objektstruktur Die physische Dokumentstruktur setzt sich rekursiv aus Glyph Objekten zusammen. Alle Glyphs haben die selbe Schnittstelle. Komposite (Spalte) Komposite (Zeile) Komposite (Zeile)... G e... Prof. Dr. Nikolaus Wulff 14
15 Formatierung Die Glyph Hierarchie beschreibt jetzt die rekursive physische Struktur von Lexis Daten. Wie werden diese formatiert? Wo sind Zeilen- und Seitenumbrüche? Wie lassen sich diese einfach in ein Dokument einbauen und auch möglichst einfach auf Wunsch umformatieren? Benötigt werden unterschiedliche Formatierungsstrategien, die gezielt eingesetzt werden können. Hierzu wird das Strategie Muster angewandt. Prof. Dr. Nikolaus Wulff 15
16 Strategie Muster zur Formatierung Formatierer kapselt die Formatieralgorithmen. Composition wird mit einem Formatierer parametrisiert. Prof. Dr. Nikolaus Wulff 16
17 Formatierer Struktur Alle Komposita haben/kennen einen Formatierer... Komposite Spalte Formater Zeile Zeile... G e... Prof. Dr. Nikolaus Wulff 17
18 Erweiterungen von Glyphs Bestimmte Glyph Typen wie z.b. Tabellen, Listen oder Bilder sollen mit Rahmen, Untertexten etc. versehen werden. Statt diese Funktionalität direkt in jeder dieser Unterklassen zu implementieren was zu eine Duplizierung von Code führt, werden diese Glyphs mit der Erweiterung dekoriert. Die Klasse wird nicht durch Vererbung erweitert, sondern transparent ohne eigenes Wissen in einer anderen Glyph Klasse eingehüllt. Das Dekorater-Muster dient genau diesem Zweck. Prof. Dr. Nikolaus Wulff 18
19 Dekorator Pattern Prof. Dr. Nikolaus Wulff 19
20 Dekorierer Objektstruktur Beliebige Glyphs lassen sich einwickeln... Rahmen Scroller Komposite Spalte Zeile... G e... Prof. Dr. Nikolaus Wulff 20
21 Look and Feel Lexi soll ohne große Änderung unterschiedliche graphische Standards unterstützen können. Die Style Guides für Benutzerschnittstellen von Mac OS, Unix Motif oder Windows XP sind ähnlich jedoch nicht identisch. Es soll eine Portierung von neuen zur Entwicklungszeit von Lexi noch unbekannten Standards einfach möglich sein. Idealerweise wird Lexi beim Start dynamisch mitgeteilt welches Look und Feel zu verwenden ist oder es kann zur Laufzeit gewechselt werden. Prof. Dr. Nikolaus Wulff 21
22 Abstraktion der Objekterzeugung Oberflächen haben einen Satz von graphischen Objekten Widgets *, Knopf, Leiste, Dialog, etc Um das Look & Feel ändern zu können muss Lexi gegen eine abstrakte Widget Hierarchie entwickelt werden, von der zur Laufzeit konkrete Spezialisierungen instantiiert werden. So gibt es z.b. eine abstrakte Klasse Button mit den konkreten Subtypen passend zum Look & Feel MacButton, WinButton und MotifButton. Lexi darf nichts von diesen direkten Untertypen wissen. Sonst wäre Lexi nicht mehr erweiterbar. *) Widget: Kunstwort aus Window und Gadget (techn. Gerät) Prof. Dr. Nikolaus Wulff 22
23 Parallele Widget Hierarchie Abstraktion... Für jedes Look & Feel gibt es eigene Widget-Sets. Lexi darf nur gegen die abstrakten Widgets Menu, Button etc. programmiert werden. Frage: Wie erhält Lexi die konkreten Unterklassen? Prof. Dr. Nikolaus Wulff 23
24 new Operator vermeiden Überlicherweise würde Lexi ein konkretes Widget einfach erzeugen: Button b = new MacButton(); Konsequenz: Der Code ist nicht mehr portabel. Das MacFrame Widget ist hart codiert Es kann zur Laufzeit nicht geändert werden. Es können keine neuen Widget Hierarchien transparent hinzugefügt werden. Benötigt wird eine (abstrakte) Widget Fabrik Button b = widgetfactory.createbutton(); Prof. Dr. Nikolaus Wulff 24
25 Abstract Factory Pattern Der new Operator wird durch eine Abstrakte Fabrik ersetzt, deren konkrete Ausprägungen die konkreten Widgets erzeugen. Prof. Dr. Nikolaus Wulff 25
26 Instantiierung der Abstrakten Fabrik static WidgetFactory widgetfactory; public static void main(string[] args) { String laf = System.getenv("LOOK_AND_FEEL"); if (laf.equals("mac")) { widgetfactory = new MacFactory(); } else if (laf.equals("motif")) { widgetfactory = new MotifFactory(); } else if (laf.equals("windows")) { widgetfactory = new WinFactory(); } } Beim Systemstart wird die Abstrakte Factory für das Look and Feel konkret instantiiert. Lexi kann sie global überall verwenden... Prof. Dr. Nikolaus Wulff 26
27 Unterschiedliche Fenster Systeme Look und Feel ist nur ein Aspekt einer Anwendung. Soll Lexi von Linux nach Windows oder Mac OS portiert werden, so bedeutet dies mehr als nur eine Anpassung des Look und Feel. Die Programmierschnittstellen/APIs der jeweiligen Betriebsysteme sind unterschiedlich. Eine Möglichkeit zur Lösung wäre auch hierzu das Abstrakte Factory Muster zu verwenden. Die Randbedingungen sind jedoch anders: L&F emulierte auf einem OS das L&F der jeweils anderen. Jetzt geht es um eine einheitliche Abstraktion für alle OS. Prof. Dr. Nikolaus Wulff 27
28 Brücken Muster Die Betriebsystem stellen im Prinzip ähnliche Resourcen Frame, Dialog, etc zur Verfügung. Lediglich die Schnittstelle zur Verwendung ist nicht identisch. Gesucht wird eine Brücke von den Abstraktionen, gegen die Lexi programmiert ist, zu den konkreten Angeboten/APIs der jeweiligen Betriebsysteme. Ähnlich dem Strategie Muster wird jetzt zu den Abstraktionen eine konkrete Implementierung gebildet, deren Auswahl durch eine Fabrik erfolgt. Als Beispiel dient die Klasse Window. Prof. Dr. Nikolaus Wulff 28
29 Bridge Pattern Bridge Plattform neutral Plattform spezifisch Konkrete Anfragen an ein Window werden direkt an die konkrete, plattformspezifische impl-instanz des Window delegiert. Die impl-instantiierung geschieht OS abhängig... Unterklassen von Window sind einfach möglich. Prof. Dr. Nikolaus Wulff 29
30 Benutzerfunktionalität Lexi bietet dem Benutzer viele Funktionen an: Erzeugen, Öffnen, Speichern und Drucken eines Dokuments Ausschneiden und Einfügen von Text Ändern von Formatierung, Schriftsatz, etc. Viele dieser Operationen müssen zentral in unterschiedlichen Kontexten erreichbar sein. Lexi bietet Undo- und Redofunktionalität an. Diese Anforderungen sind eine Herausforderung für den Entwickler. Wie lässt sich ein einheitliches Benutzungsmodell entwerfen? Prof. Dr. Nikolaus Wulff 30
31 Command Pattern Eine bestimmte Operation kann unter Umständen von mehreren Widgets Menu, Button, etc. ausgelöst werden. Es macht keinen Sinn diese Funktionen direkt in das Widget z.b. durch Vererbung einzubauen. Die Operationen werden in einer Befehlsklasse gekapselt. Ein abstrakter Befehl bietet als Schnittstelle lediglich eine execute-methode. Diese wird in konkreten Befehlsklassen entsprechend überladen. Prof. Dr. Nikolaus Wulff 31
32 Befehle Hierarchie Commands haben eine einheitliche Schnittstelle. Jeder führt genau seine spezielle Operationen aus. Prof. Dr. Nikolaus Wulff 32
33 Command execution Jedes Widget wird mit seinem Command Objekt parametrisiert, dessen execute Methode bei Betätigung ausführt wird. Prof. Dr. Nikolaus Wulff 33
34 Kommando Historie Die Implementierung der Undo- Redofunktionalität ist leicht, es muss lediglich die Historie aller ausgeführten Befehlsobjekte verwaltet werden. cmd cmd cmd cmd cmd cmd cmd cmd cmd cmd past present future Nach einem Undo-Befehl wird die Zeitmarke um eins verschoben und ein Redo wird möglich... Prof. Dr. Nikolaus Wulff 34
35 Glyph Travestierung Lexis Dokumente bestehen aus zusammengesetzten Composite Glyph Objekten. Wie diese intern aufgebaut sind ist für Klienten irrelevant. Es können Listen, Arrays, binäre Bäume etc. sein. Es muss jedoch z. B. für die Rechtschreibprüfung eine effektive Möglichkeit zur Travestierung dieser Strukturen bestehen, ohne diese offen zu legen. Diese Funktionalität lässt sich am einfachsten mit dem Konzept eines Iterator kapseln. Prof. Dr. Nikolaus Wulff 35
36 Iterator Pattern Spezielle Iteratoren erlauben für Klienten eine transparente Travestierung, unabhängig von der konkreten Glyph Struktur... Prof. Dr. Nikolaus Wulff 36
37 Rechtschreibprüfung Die Möglichkeit über alle Glyphs zu iterieren gestattet eine effiziente Implementierung der Rechtschreibprüfung oder Silbentrennung. Das Problem ist ähnlich dem der Formatierung und eine Kapselung dem Strategie Muster bietet sich an. Problem: Der Iterator liefert sämtliche Glyphs des Dokuments, Zeichen, Images, leere Glyphs, etc. Nicht alle machen für die Rechtschreibprüfung oder Silbentrennung Sinn. Prof. Dr. Nikolaus Wulff 37
38 if-else Verteiler public class SpellChecker { public void check(glyph glyph) { if (glyph instanceof Character) { checkcharacter((character) glyph); } else if (glyph instanceof CompositeGlyph) { checkcomposite( (CompositeGlyph) glyph); } else if (glyph instanceof ImageGlyph) { return; // nothing to do with Image }... Ein solcher if-else Verteiler mit dynamischen Casts ist schlechter OO Stil... Mit jeder neuer Glyph Klasse wächst der Verteiler. Prof. Dr. Nikolaus Wulff 38
39 Besucher Muster Eine elegantere Variante als if-else bietet das Besucher Muster. Die Glyph Klasse definiert eine spell-methode, die es dem SpellChecker erlaubt diese während der Iteration zu besuchen. Konkrete Unterklassen überladen diese Methode, so dass die richtige Methode des SpellCheckers passend zum Glyph Typen gerufen wird. Offensichtlich bedingt dies eine relative enge Koppelung der Glyph und SpellChecker Klasse. Prof. Dr. Nikolaus Wulff 39
40 Visitor Pattern public class SpellChecker { public void check(glyph glyph) { Iterator iterator = glyph.createiterator(); while (iterator.hasnext())) { Glyph aglyph = iterator.nextelement(); aglyph.spell(this); } Der SpellChecker kann über alle Glyph Instanzen iterieren. Jedes Glyph Objekt weiss selbst wie es mit einem SpellChecker umzugehen hat... Prof. Dr. Nikolaus Wulff 40
41 Visistor Pattern (II) public abstract class Glyph { public abstract void spell(spellchecker checker); public class CharacterGlyph extends Glyph { public void spell(spellchecker checker) { checker.checkcharacter(this); } public class CompositeGlyph extends Glyph { public void spell(spellchecker checker) { checker.checkcomposite(this); }... Prof. Dr. Nikolaus Wulff 41
42 Lexi's Design Pattern Der Entwurf von Lexi demonstrierte einige Muster: Composite Strategy Decorator Factory Bridge Command Iterator Visitor Dokument Struktur Formatierungsalgorithmen Ausschmücken von Widgets Look und Feel Verschiedene Fensterplattformen Undo und Redo von Aktionen Zugriff auf Objektstrukturen Einheitliche Analyse Prof. Dr. Nikolaus Wulff 42
Software-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D
Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D 1 1. EINLEITUNG... 3 2. ZWECK... 3 3. MOTIVATION... 3 4. ANWENDBARKEIT... 6 5. STRUKTUR... 6 6. TEILNEHMER... 7 7. INTERAKTION...
Software-Architektur Design Patterns
Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:
Design Patterns. 5. Juni 2013
Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es
Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
Vorbereitung zu Praktikum 3
Vorbereitung zu Praktikum 3 Menü-Toolkit und Command Pattern Fallstudie zu Vererbung und Polymorphie: "Menü-Toolkit" Anwenderfreundliche Programme werden mit Menüs gesteuert In objektorientierten Anwendungen
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
Design Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten
Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere
Konstruktion anpassbarer Software
Konstruktion anpassbarer Software O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree Fachbereich Informatik cs.uni-salzburg.at Inhalt Konfigurationsparameter Konzepte und Konstruktionsprinzipien für anpassbare,
Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff
Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung
14 Design Patterns. 14.1 Einführung 14.2 Composite Pattern
14 Design Patterns 14.1 Einführung 14.2 Composite Pattern 14.1 Einführung 14.1.1 Motivation 14.1.2 Was ist ein Design Pattern? 14.1.3 Beschreibung eines Design Patterns 14.1.4 Katalog von Design Patterns
Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH
Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Chair of Software Engineering Weiterführe Referenzen Kapitel 21 von Object-Oriented 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
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
Analyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
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,
Analyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2
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
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
Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET
Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur
PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik
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........................
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
VBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
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
Generische Datenstrukturen
Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung
DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens
November DESIGN'PATTERN'2011 INHALT Intent Motivation Applicability Structure Consequences Implementation Sample Code [1] BEARBEITET VON Christoph Süsens Abstract Factory & Factory Method Inhaltsverzeichnis
12) Generische Datenstrukturen
mpfohlene Literatur 12) Generische Datenstrukturen http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf rof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden
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 ++) {
Teil 1: Grundeigenschaften von Rechnern und Software
Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [3P] Nennen Sie mindestens 3 Arten von Programmen zur Softwareentwicklung Editor, Compiler, Linker, Debugger, Interpreter,...
1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Rekursion Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Aufgabe 1: Potenzfunktion Schreiben Sie eine Methode, die
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
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
OO Softwareentwicklung
OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung
Entwurfsmuster (Design Pattern) ETIS SS05
Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit
SE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
am Beispiel von JUnit
Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern
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/
Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel
Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:
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
Technische Universität München WS 2011/12 Fakultät für Informatik Lösungsvorschläge zu Blatt 2 Dr. C. Herzog, M. Maalej 31.
2/ Technische Universität München WS 20/2 Fakultät für Informatik Lösungsvorschläge zu Blatt 2 Dr. C. Herzog, M. Maalej 3. Oktober 20 Übungen zu Grundlagen der Programmierung Aufgabe 4 (Lösungsvorschlag)
12) Generische Datenstrukturen
12) Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 09-0.2, 24.11.08 Softwaretechnologie, Prof. Uwe Aßmann 1 mpfohlene
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische
Vorlesung Programmieren
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?
Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?
1. Einleitung. 1.1 Motivation. 1.2 Ziel der Arbeit. 1.3 Danksagung
1. Einleitung 1.1 Motivation Im Fach Systemprogrammierung des Informatik-Grundstudiums lernen die Studenten die Assembler-Sprache des Sparc-Mikroprozessors [6] kennen. Um mit dem Befehlssatz zu experimentieren,
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
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. B. Rost, L. Richter Java, Objektorientierung 5.1 (U )
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
Benutzeroberflächen. Java Teil 4
Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in
Test-Driven Design: Ein einfaches Beispiel
Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms
Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
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
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
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:
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik
Analyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Objektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am
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
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
Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung
Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:
Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische
Objektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
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
Java-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification
Generische Typen in Java 1.5 - Seminarvortrag 1/26 Generische Typen in Java 1.5 Die Erweiterung der Java Language Specification Seminarvortrag von Heiko Minning, mi3795 bei Prof. Dr. Uwe Schmidt, FH-Wedel
Projekt AGB-10 Fremdprojektanalyse
Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................
Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1
Faktor-IPS Modellgetriebene Softwareentwicklung mit Faktor-IPS Seite 1 Faktor-IPS Faktor-IPS ist ein Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme Bestandssysteme Außendienstsysteme
Software Engineering Entwurfsmuster (update: 11.6.)
Software Engineering Entwurfsmuster (update: 11.6.) Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Entwurfsmuster Entwurfsmuster (Design Patterns) geben bewährte
Aufgabenblatt Nr. 5 Generizität und TicTacToe
Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung
PIWIN 1 Übung Blatt 5
Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:
Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
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
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,
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,
Informatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
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
4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt
Client-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgabe (1/1) Lösung Aufgabe
8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke
Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte
Grafische Benutzeroberflächen mit Swing
Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,
Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE
1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS
EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
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
Softwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
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
Von der UML nach C++
22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete
Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
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
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