Modellierung von Struktur OOPM, Ralf Lämmel
|
|
- Erica Meyer
- vor 7 Jahren
- Abrufe
Transkript
1 Eigentlich ein Verkehrsschild -- schaut aber wie UML aus!? Modellierung von Struktur OOPM, Ralf Lämmel
2 733 Motivation: Wir wollen die Struktur für eine Anwendung im Personalwesen modellieren. MSFT Firma HR Dev Abteilungen Unter- abteilungen VB C# Angestellte Paul Erik Ander
3 734 Ein Klassendiagramm für eine Anwendung im Personalwesen Verwendung von Komposition (Teil-Ganzes-Beziehung)
4 735 Beziehungen im OO Paradigma Auf Objektebene Verknüpfungen zwischen Objekten Auf Typebene (Klassen / Schnittstellen) Generalisierung Eine Klasse spezialisiert eine andere Klasse. Ein Schnittstelle spezialisiert eine andere Schnittstelle. Eine Klasse realisiert eine Schnittstelle. Mehrfachvererbung Assoziationen Modellierung von Verknüpfungen auf Typebene
5 736 Fahrplan Relevante Sprachmittel in Java Klassenbeziehungen UML-Notation für Beziehungen in Klassendiagrammen Abwägung von Vererbung vs. Komposition Abbildung von UML s Beziehungen auf Java
6 737 Ein Beispiel Eine Klasse für Zähler (Counter) Zustand Zählerstand Verhalten Zähler erhöhen ( step ) Zählen ablesen ( read ) Zähler zurücksetzen ( reset ) Siehe Package oo.counter und Unterpackages
7 738 /** * A simple class of counters */ public class BasicCounter { /** Private state of the counter */ private int count = 0; /** Increment the counter */ public void step() { count++; /** Return the value of the counter */ public int read() { return count; /** Reset the counter to zero */ public void reset() { count = 0;
8 739 Veränderte Anforderung (Realisierung mit Klassenvererbung) Zähler mit Grenze ( limit ) Zustand Limit Modifiziertes Verhalten Zähler erhöhen ( step )
9 740 /** * A counter whose count is limited */ public class LimitedCounter extends BasicCounter { private int limit; /** Construct a limited counter from the limit */ public LimitedCounter(int i) { limit = i; /** Stop stepping when the limit is reached */ public void step() { if (read() < limit) super.step(); Aufruf der Implementation der Oberklasse
10 741 Veränderte Anforderung (Realisierung mit Klassenvererbung) Zähler mit Erinnerung ( recall ) Zustand Geretteter Wert ( snap ) Zusätzliches Verhalten Retten des Wertes ( mark ) Erinnern ( recall )
11 742 /** * A counter with recall */ public class RecallCounter extends BasicCounter { private int snap = read(); /** Store the counter state until later */ public void mark() { snap = read(); /** Reset the counter for recall */ public void recall() { count = snap; Oops! Unzulässiger Zugriff auf count!
12 743 /** * A simple class of counters */ public class BasicCounter { /** Protected state of the counter */ protected int count = 0; Gewährung von Zugriff für Unterklassen /** Increment the counter */ public void step() { count++; /** Return the value of the counter */ public int read() { return count; /** Reset the counter to zero */ public void reset() { count = 0;
13 744 Beschränkung der Veerbung Finale Klasse Kann nicht spezialisiert werden Beschränkt Typsubstitution Finale Methode Kann nicht überschrieben werden Beschränkt Verhaltensänderungen
14 745 /** * A counter that cannot be extended any further */ public final class FinalCounter extends BasicCounter {
15 746 Variation im OO Entwurf Identifikation einer Schnittstelle für Zähler Abstraktion von jeglicher Implementation Warum? Lässt die Oberklasse offen Nicht so wichtig für triviale Zähler! Interessant für komplexere Datenstrukturen
16 747 /** * The shared interface of counters */ public interface Counter { /** Increment the counter */ void step(); /** Return the value of the counter */ int read(); /** Reset the counter to zero */ void reset();
17 748 /** * A simple class of counters */ public class BasicCounter implements Counter { // Private state of the counter protected int count = 0; /** Increment the counter */ public void step() { count++; /** Return the value of the counter */ public int read() { return count; /** Reset the counter to zero */ public void reset() { count = 0;
18 749 Variation im OO Entwurf Wieder Zähler mit Grenze mit Wiederverwendung aber ohne Vererbung Benutzung von Assoziation Verknüpfung zu Zähler ohne Grenze Delegation von Nachrichten Warum? Nicht so wichtig für triviale Zähler! Nötig wenn Oberklasse anderweitig feststeht Ermöglicht Dekoration & Komposition von Verhalten
19 750 /** * A counter whose count is limited */ public class LimitedCounter implements Counter { private BasicCounter inner = new BasicCounter(); private int limit; /** Construct a limited counter from the limit */ public LimitedCounter(int i) { limit = i; /** Return the value of the counter */ public int read() { return inner.read(); Delegation /** Reset the counter to zero */ public void reset() { inner.reset(); Delegation /** Stop stepping when the limit is reached */ public void step() { if (read() < limit) inner.step(); Bedingte Delegation
20 751 Variation im OO Entwurf Wieder Zähler mit Erinnerung mit Wiederverwendung aber ohne Vererbung Benutzung von Assoziation Verknüpfung zu Zähler ohne Erinnerung Delegation von Nachrichten
21 752 public class RecallCounter implements Counter { private BasicCounter inner = new BasicCounter(); private int snap = inner.read(); /** Increment the counter */ public void step() { inner.step(); /** Return the value of the counter */ public int read() { return inner.read(); /** Reset the counter to zero */ public void reset() { inner.reset(); /** Store the counter state until later */ public void mark() { snap = read(); /** Reset the counter for recall */ public void recall() { inner.count = snap; Oops! Unzulässiger Zugriff auf count! Oops! protected tut es nicht!
22 753 /** * A simple class of counters */ public class BasicCounter implements Counter { // Package-private state of the counter /* default */ int count = 0; Gewährung von Zugriff für Klassen im Package /** Increment the counter */ public void step() { count++; /** Return the value of the counter */ public int read() { return count; /** Reset the counter to zero */ public void reset() { count = 0;
23 754 Zugriffskontrollen public Zugriff darf von überall erfolgen private Zugriff nur innerhalb der Klasse protected Zugriff in der Klasse und Unterklassen default Zugriff überall innerhalb des Packages Synonyme: friendly und package private
24 755 Beziehungen im OO Paradigma Auf Objektebene Verknüpfungen zwischen Objekten Auf Typebene (Klassen / Schnittstellen) Generalisierung Eine Klasse spezialisiert eine andere Klasse. Ein Schnittstelle spezialisiert eine andere Schnittstelle. Eine Klasse realisiert eine Schnittstelle. Mehrfachvererbung Assoziationen Modellierung von Verknüpfungen auf Typebene
25 756 Einfach- & Mehrfachvererbung Erbt eine Klasse nur von einer anderen Klasse, so spricht man von Einfachvererbung. Sind es mehrere Klassen, von denen geerbt wird, so bezeichnet man dies mit Mehrfachvererbung.
26 757 Mehrfachvererbung Zulässig in UML und C++ u.a. Unklarheiten / Probleme / Risiken Direkte Konflikte (siehe paymeal) Indirekte Konflikte (siehe name) Mehrfachvererbung in Java Nicht zulässig für Klassen Zulässig für Schnittstellen
27 758 Mehrfachvererbung in UML (ein weiteres Beispiel)
28 759 Eine Klasse kann mehrere Schnittstellen implementieren.
29 760 Beziehungen im OO Paradigma Auf Objektebene Verknüpfungen zwischen Objekten Auf Typebene (Klassen / Schnittstellen) Generalisierung Eine Klasse spezialisiert eine andere Klasse. Ein Schnittstelle spezialisiert eine andere Schnittstelle. Eine Klasse realisiert eine Schnittstelle. Mehrfachvererbung Assoziationen Modellierung von Verknüpfungen auf Typebene
30 761 Assoziationen Allgemeine Assoziation Teil-Ganzes Beziehungen Aggregation Komposition
31 762 Allgemeine Assoziationen Zwei Klassen gehen eine Beziehung ein. Modelliert Verbindungen zwischen Instanzen Multiplizität der Verbindung ist festzulegen Gerichtete Verbindungen sind nur einseitig navigierbar Beispiel Ein Konto hat einen (1) zugeordneten Kunden. Ein Kunde besitzt beliebig viele (0..*) Konten.
32 763 Teile-Ganzes-Beziehungen Siehe Package oo.shapes.awtish Aggregation Alle Multiplizitäten sind zulässig Unausgefüllte Raute am Ende des Ganzen Komposition Stärkere Form der Aggegration Multiplizitäten 1 und 0..1 zulässig für das Ganze Ausgefüllte Raute am Ende des Ganzen Beispiel Eine Abbildung besteht aus beliebig vielen Formen.
33 764 Unterscheidung von Aggregation und Komposition Betrachte die Beziehung zwischen Klassen für Fahrzeuge und Motoren. Ein Motor ist definitiv ein Teil des Fahrzeugs. Nehmen wir weiterhin an, dass die Klassen technische Entwürfe modellieren. Dann kann ein Motor Teil mehrerer Fahrzeuge sein. Aggregation ist adäquat. Komposition wäre stattdessen adäquat, wenn die Klassen physische Fahrzeuge (und deren Komposition aus echten Teilen) modellieren. Jedes Teil kann dann nur einmal verwendet werden.
34 765 Abwägung zwischen Generalisierung und Assoziation Wäre hier denn vielleicht Komposition anstatt allgemeiner Assoziation angebracht?
35 766 Kombination aus Generalisierung und Assoziation
36 767 Java-Implementation von UML-Assoziationen Variationen Gerichtet und ungerichtet Multiplizitäten 0..1, 1, 0..*, 1..* Allgemein vs. Aggregation (Komposition) (Assoziationsklassen (Assoziationen mit Attributen)) (Mehrfachgeneralisierungen (für Klassen)) Siehe Package oo.assoc und Unterpackages. Wir werden die (wenigen) speziellen Herausforderungen von Aggregation nicht besprechen. Wir werden auch gar nicht Implementationsstrategien für mehrfache Generalisierung (Mehrfachvererbung) besprechen.
37 Modell Jede Person hat möglicherweise eine Residenz. Jede Residenz beherbergt beliebig viele Personen. Navigation ist nur von Person nach Residenz vorgesehen. Implementation Klasse Person hat Feld vom Typ Residence. Das Feld darf legal den Wert null annehmen.
38 769 /** * A person with an optional residence */ public class Person { private Residence residence; public Residence getresidence() { return residence; public void setresidence(residence residence) { this.residence = residence; /** * A residence... */ public class Residence {...
39 770 1 Modell Jede Person hat genau eine Residenz. Sonst wie vorher. Implementation Konstruktion einer Person benötigt eine Residenz. Parameter des Konstruktors Erzeugen des Residenzobjektes Gestatten einer zeitweiligen Inkonsistenz
40 771 Jede Person hat genau eine Residenz. Überprüfung des Parameterkonstruktors public class Person { private Residence residence; /** Construction requires a residence */ public Person(Residence residence) { if (residence==null) throw new IllegalArgumentException(); setresidence(residence); Vordefinierte Ausnahmeklasse...
41 772 Ableitungsposition von IllegalArgumentException
42 * Modell Jede Person hat beliebig viele Residenzen. Sonst wie vorher. Implementation Das Feld für die Residenzen ist von einem Container-Typ.
43 774 Hinzufügen einer Verknüpfung public class Person { private List<Residence> residences = new LinkedList< Residence >(); public void addresidence(residence r){ residences.add(r); public class Residence {...
44 775 ungerichtet Modell Navigation von Residenzen nach Personen nun zulässig. Implementation add/remove-operation werden beidseitig angewandt.
45 776 public class Person { Hinzufügen einer Verknüpfung: gegenseitiger Aufruf private List<Residence> residences = new LinkedList< Residence >(); public void addresidence(residence r){ residences.add(r); r.addperson(this); Oops! Endlosrekursion! public class Residence { private List<Person> persons = new LinkedList<Person>(); public void addperson(person p){ persons.add(p); p.addresidence(this);
46 777 public class Person { Hinzufügen einer Verknüpfung: entfernte Container-Manipulation private List< Residence > residences = new LinkedList< Residence >(); public void addresidence(residence r){ residences.add(r); r.persons.add(this); Oops! Unerlaubter Zugriff public class Residence { private List<Person> persons = new LinkedList<Person>(); public void addperson(person p){ persons.add(p); p.residences.add(this);
47 778 public class Person { Hinzufügen einer Verknüpfung: Verwendung der Paketsichtbarkeit /* default */ List< Residence > residences = new LinkedList< Residence >(); public void addresidence(residence r){ residences.add(r); r.persons.add(this); Gibt es weitere Lösungsideen? public class Residence { /* default */ List<Person> persons = new LinkedList<Person>(); public void addperson(person p){ persons.add(p); p.residences.add(this);
48 Zusammenfassung Struktur wird mit UML s Klassendiagrammen modelliert. Struktur wird mit Java s Klassen implementiert. Man muss Vererbung vs. Objektkomposition abwägen. Man muss Sichtbarkeit regeln. Ausblick Syntax und Semantik von Programmiersprachen Verhaltensmodellierung mit UML...
49 Assoziationsklassen (Assoziationen mit Attributen) (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 780 Für das Selbststudium bzw. für die Besprechung in Übung/Praktikum.
Generizität. OOPM, Ralf Lämmel
Generizität OOPM, Ralf Lämmel 2 Motivation: Wir wollen einen generischen Keller und nicht einen Keller für Ints. public class IntStack { private IntListEntry top = null; public void push(int item) { IntListEntry
Mehr8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure
8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:
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
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrProgrammierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
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
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
MehrVererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1
Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
MehrVon 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
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
MehrAbleiten konkreter Klassen
Ableiten konkreter Klassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 31.05.2018 14:37 Ableiten konkreter Klassen 1/50 Idee Interfaces isolieren gleiche Eigenschaften verwandter
MehrAbleiten konkreter Klassen
Softwareentwicklung II (IB) Ableiten konkreter Klassen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 31.05.2018 14:37 Inhaltsverzeichnis Idee.........................................
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,
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
Mehr15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595
Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified
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
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,
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
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:
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
MehrGrundlagen der Objektorientierung OOPM, Ralf Lämmel
Ist es nicht offensichtlich, dass die Gurkenscheiben OO repräsentieren? Grundlagen der Objektorientierung OOPM, Ralf Lämmel 2 Neue bzw. ausgeweitete Begriffe 1. Objekt (eine Kapsel aus Zustand und Verhalten)
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
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
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
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
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
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
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
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrJava 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
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrObjektorientierte Modellierung
Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
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
MehrII.4.2 Abstrakte Klassen und Interfaces - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1
MehrObjektorientierung OOPM, Ralf Lämmel
Ist es nicht offensichtlich, dass die Gurkenscheiben OO repräsentieren? Objektorientierung OOPM, Ralf Lämmel 662 7 neue bzw. ausgeweitete Begriffe 1. Objekt (mehr als die Instanz eines Datentyps) 2. Klasse
MehrUML -Klassendiagramme
UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm
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
Mehr14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
MehrObjekt-orientierte Programmierung
Objekt-orientierte Programmierung Eine (sehr) kurze Einführung Daniel Lübke Gliederung Motivation Grundlagen (Objekte, Klassen, Vererbung) Interfaces Klassenvariablen
MehrGeoinformation I Datenmodellierung
Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung
MehrWiederholung. Klassenhierarchie:
Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse
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
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen
MehrInstanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben?
A u f g abe 1 : a ) Was ist eine Klasse? Was ist ein Objekt? Geben Sie ein Beispiel fur eine Klasse mit mindestens je 3 Attributen und je 3 Operationen. Finden Sie zu dieser Klasse mindestens 3 Instanzen.
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
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
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object
MehrInformatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Polymorphie Teil 2 20. Dezember 2018 Einführung in die Programmierung WS18/19 André Karge 1/16 letzte Woche Methoden überladen Generics 20. Dezember
MehrGrundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
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
MehrAssoziationen in Java
Assoziationen in Java Michael Dienert 16. Oktober 2018 1 Wiederholung: Gerneralisierung und Vererbung Gerneralisierung ist das Gegenteil von Vererbung: Eine spezielle Klasse erbt von der allgemeineren
MehrPolymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
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
MehrObjektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
MehrPolymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
MehrKlassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
MehrÜberblick. Überblick zum weiteren Inhalt
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrAbschnitt 15: Unified Modeling Language (UML)
Abschnitt 15: Unified Modeling Language (UML) 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrKlassen und ihre Beziehungen I: Assoziation und Aggregation
Klassen und ihre Beziehungen I: Ziele Verstehen der Begriffe Assoziation, Aggregation und Komposition 2 Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, irk Pattinson 3 4 Assoziation
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
Mehr7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
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
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
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
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
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.
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,
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
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrDie Klasse Vertiefung
Die Klasse Vertiefung Vom Objekt zur Klasse Basis des OO-Paradigmas ist (wen verwundert es): Das Objekt Objekte werden in der Lehre und im allgemeinen Programmier-Jargon selbstverständlich mit Klassen
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
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 8: Interfaces Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Einführung 2. Schnittstellen in Java 3. Exkurs: Marker-Interfaces
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
MehrUNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 15: Wiederholung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 3. Februar 2016
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
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.
MehrTeil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II
Teil 2-3. Vorlesung Modul: Programmierung B-PRG Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1 Wrapper-Klassen Alle primitive Datentypen haben eine
Mehr9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1
9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrSoftwaretechnik WS 16/17. Übungsblatt 01
Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and
MehrAbschnitt 14: Schnittstellen: Interfaces
Abschnitt 14: Schnittstellen: Interfaces 14. Schnittstellen: Interfaces 14.1 Die Idee der Schnittstellen 14.2 Schnittstellen in Java 14.3 Marker-Interfaces 14.4 Interfaces und Hilfsklassen 14 Schnittstellen:
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
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
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
Mehr