Grundlagen der Informatik
|
|
- Dennis Brahms
- vor 8 Jahren
- Abrufe
Transkript
1 Grundlagen der Informatik Prof. Dr. Stefan Böcker Labor für mobile Technologien Fachhochschule Südwestfalen Campus Hagen Sommersemester / 195
2 Inhaltsverzeichnis Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 2 / 195
3 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 3 / 195
4 Dozenten Prof. Dr. Stefan Böcker Raum: H.114 Telefon: Hendrik Schmidt Raum: H.112 Telefon: Robert Schweda Raum: H.112 Telefon: / 195
5 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 5 / 195
6 Vorlesung und Übungen Vorlesung (AudiMax) Zeit: Mittwoch 09:45h - 11:15h Übungen (Raum H.115) Gruppe A: Dienstag 15:45h - 17:15h Gruppe B: Dienstag 12:15h - 13:45h Gruppe C: Mittwoch 12:15h - 13:45h Gruppe D: Dienstag 14:00h - 15:30h Gruppe E: Montag 14:00h - 15:30h Gruppe F: Montag 09:45h - 11:15h Gruppe H und ISBAEN: Montag 15:45h - 17:15h 6 / 195
7 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 7 / 195
8 Prüfungsleistungen Prüfungsleistung durch zwei semesterbegleitende Teilprüfungen (SBT) mit je 50 erreichbaren Punkten. Ihre Punkte aus dem 1. Semester und die von Ihnen erreichten Punkte am Ende dieses 2. Semesters bestimmen Ihre Modul-Note. Termine für die SBTs: Mai 2012 in der Vorlesung Juni 2013 in der Vorlesung 8 / 195
9 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 9 / 195
10 Skripte Folien zur Vorlesung 10 / 195
11 Online-Dokumente Sun Dokumentation Handbuch der Java-Programmierung Java ist auch eine Insel 11 / 195
12 Literatur Java Jochen Seemann, Jürgen Wolff von Gudenberg Software-Entwurf mit UML 2 Guido Krüger Handbuch der Java-Programmierung Christian Ullenboom Java ist auch eine Insel Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger Grundkurs Programmieren in Java Dietmar Abts Java Grundkurs Masterkurs Client/Server-Programmierung mit Java 12 / 195
13 Literatur UML / Softwareentwicklung Dirk Hardy UML für IT-Berufe Heide Balzert UML 2 in 5 Tagen Patrick Grässle, Henriette Baumann, Philippe Baumann UML 2 projektorientiert Peter Forbig Objektorientierte Sofwareentwicklung mit UML Karl-Heinz Rau Objektorientierte Systementwicklung 13 / 195
14 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 14 / 195
15 Entwicklungsumgebung I JDK von Sun Eclipse BlueJ 15 / 195
16 Entwicklungsumgebung II Java Compiler (javac) javac HalloWelt. java Java Interpreter (java) java HalloWelt 16 / 195
17 Werkzeuge für UML Violet UML-Editor astah* community astah-community.html ArgoUML 17 / 195
18 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 18 / 195
19 Der Software-Entwicklungszyklus 19 / 195
20 Anforderungsanalyse / Problemanalyse Was will der Auftraggeber konkret? 20 / 195
21 Anforderungsanalyse / Problemanalyse Was will der Auftraggeber konkret? Wer sind die Benutzer (Rollen, Zugriffsrechte, Sicherheitsmaßnahmen)? 20 / 195
22 Anforderungsanalyse / Problemanalyse Was will der Auftraggeber konkret? Wer sind die Benutzer (Rollen, Zugriffsrechte, Sicherheitsmaßnahmen)? Welche Daten sollen verwaltet werden? 20 / 195
23 Anforderungsanalyse / Problemanalyse Was will der Auftraggeber konkret? Wer sind die Benutzer (Rollen, Zugriffsrechte, Sicherheitsmaßnahmen)? Welche Daten sollen verwaltet werden? Welche Dienste sollen bezüglich der Daten ausgeführt werden? 20 / 195
24 Anforderungsanalyse / Problemanalyse Was will der Auftraggeber konkret? Wer sind die Benutzer (Rollen, Zugriffsrechte, Sicherheitsmaßnahmen)? Welche Daten sollen verwaltet werden? Welche Dienste sollen bezüglich der Daten ausgeführt werden? Welche Schnittstellen zu anderen Systemen sollen genutzt werden? 20 / 195
25 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) 21 / 195
26 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme 21 / 195
27 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) 21 / 195
28 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme 21 / 195
29 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk 21 / 195
30 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk Komponentenentwurf 21 / 195
31 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk Komponentenentwurf Festlegung der Komponenten der Teilsysteme 21 / 195
32 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk Komponentenentwurf Festlegung der Komponenten der Teilsysteme Analyse der Datenstrukturen 21 / 195
33 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk Komponentenentwurf Festlegung der Komponenten der Teilsysteme Analyse der Datenstrukturen Ermittlung der Objekte / Klassen (Attribute / Methoden) 21 / 195
34 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk Komponentenentwurf Festlegung der Komponenten der Teilsysteme Analyse der Datenstrukturen Ermittlung der Objekte / Klassen (Attribute / Methoden) Prozesse bzw. Algorithmen 21 / 195
35 Designphase / Entwurfsphase Systementwurf (Systemarchitektur) Zerlegung des Gesamtsystems in Teilsysteme Definition von Schnittstellen zwischen den Teilsystemen (und evtl. externen Systemen) Verteilung der Teilsysteme Plattform: Hardware, Betriebssystem, Datenbanksystem, Netzwerk Komponentenentwurf Festlegung der Komponenten der Teilsysteme Analyse der Datenstrukturen Ermittlung der Objekte / Klassen (Attribute / Methoden) Prozesse bzw. Algorithmen Verwendung von Klassenbibliotheken 21 / 195
36 Programmierphase / Codierungsphase Umsetzung des Entwurfs in Software Codierung der identifizierten Komponenten / Klassen 22 / 195
37 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 23 / 195
38 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort 24 / 195
39 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN 24 / 195
40 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer 24 / 195
41 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) 24 / 195
42 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) zurückgegeben werden (wenn er es ausgeliehen hatte!) 24 / 195
43 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) zurückgegeben werden (wenn er es ausgeliehen hatte!) reserviert werden (aber auch von mehreren Nutzern!) 24 / 195
44 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) zurückgegeben werden (wenn er es ausgeliehen hatte!) reserviert werden (aber auch von mehreren Nutzern!) Bibliotheksmitarbeiter können 24 / 195
45 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) zurückgegeben werden (wenn er es ausgeliehen hatte!) reserviert werden (aber auch von mehreren Nutzern!) Bibliotheksmitarbeiter können neue Nutzer für die Bibliothek einrichten (die entweder Student mit Matrikelnummer oder Angestellter mit Titel und Telefonnummer sind) 24 / 195
46 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) zurückgegeben werden (wenn er es ausgeliehen hatte!) reserviert werden (aber auch von mehreren Nutzern!) Bibliotheksmitarbeiter können neue Nutzer für die Bibliothek einrichten (die entweder Student mit Matrikelnummer oder Angestellter mit Titel und Telefonnummer sind) Bücher angelegen und bestellen 24 / 195
47 Anforderungen an eine Bibliotheksverwaltung Verwaltung von Bibliotheksnutzern mit Name, Vorname, Straße, PLZ, Ort Verwaltung von Büchern mit Titel, Autor, ISBN Ein Buch kann von einem Nutzer ausgeliehen werden (wenn es nicht schon ausgeliehen ist!) zurückgegeben werden (wenn er es ausgeliehen hatte!) reserviert werden (aber auch von mehreren Nutzern!) Bibliotheksmitarbeiter können neue Nutzer für die Bibliothek einrichten (die entweder Student mit Matrikelnummer oder Angestellter mit Titel und Telefonnummer sind) Bücher angelegen und bestellen Benutzer- und Buchlisten anzeigen 24 / 195
48 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 25 / 195
49 Objektorientierte Entwicklungsphasen Objektorientierte Analyse (OOA) 26 / 195
50 Objektorientierte Entwicklungsphasen Objektorientierte Analyse (OOA) Objektorientiertes Design (OOD) 26 / 195
51 Objektorientierte Entwicklungsphasen Objektorientierte Analyse (OOA) Objektorientiertes Design (OOD) Objektorientierte Programmierung (OOP) 26 / 195
52 Objektorientierte Entwicklungsphasen Objektorientierte Analyse (OOA) Objektorientiertes Design (OOD) Objektorientierte Programmierung (OOP) 26 / 195
53 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 27 / 195
54 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: 28 / 195
55 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell 28 / 195
56 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell Wer agiert? 28 / 195
57 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell Wer agiert? Was passiert bzw. was soll getan werden? 28 / 195
58 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell Wer agiert? Was passiert bzw. was soll getan werden? Mit wem wird kooperiert und von wem werden Dienste in Anspruch genommen? 28 / 195
59 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell Wer agiert? Was passiert bzw. was soll getan werden? Mit wem wird kooperiert und von wem werden Dienste in Anspruch genommen? Verhaltensdiagramme beschreiben das dynamische Modell 28 / 195
60 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell Wer agiert? Was passiert bzw. was soll getan werden? Mit wem wird kooperiert und von wem werden Dienste in Anspruch genommen? Verhaltensdiagramme beschreiben das dynamische Modell wie die im statischen Modell (Strukturdiagramm) festgelegten Verantwortlichkeiten ausgeführt werden 28 / 195
61 Unified Modelling Language Unified Modelling Language (UML) grafische Notation für die Erstellung objektorientierter Modelle die unabhängig von einer Programmiersprache dargestellt werden. Die Diagramme der UML lassen sich in zwei Gruppen einteilen: Strukturdiagramme beschreiben das statische Modell Wer agiert? Was passiert bzw. was soll getan werden? Mit wem wird kooperiert und von wem werden Dienste in Anspruch genommen? Verhaltensdiagramme beschreiben das dynamische Modell wie die im statischen Modell (Strukturdiagramm) festgelegten Verantwortlichkeiten ausgeführt werden wann diese Aktionen ausgeführt werden sollen. 28 / 195
62 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 29 / 195
63 Strukturdiagramme Die UML umfasst folgende Strukturdiagramme zur Beschreibung des statischen Modells Anwendungsfalldiagramme (Use Case Diagram) 30 / 195
64 Strukturdiagramme Die UML umfasst folgende Strukturdiagramme zur Beschreibung des statischen Modells Anwendungsfalldiagramme (Use Case Diagram) Klassendiagramme (Class Diagram) 30 / 195
65 Strukturdiagramme Die UML umfasst folgende Strukturdiagramme zur Beschreibung des statischen Modells Anwendungsfalldiagramme (Use Case Diagram) Klassendiagramme (Class Diagram) Kompositions-Strukturdiagramme Komponentendiagramme Verteilungsdiagramme Objektdiagramme Paketdiagramme 30 / 195
66 Verhaltensdiagramme Zur UML gehören folgende Verhaltensdiagramme zur Beschreibung des dynamischen Modells Sequenzdiagramme (Sequence Diagram) 31 / 195
67 Verhaltensdiagramme Zur UML gehören folgende Verhaltensdiagramme zur Beschreibung des dynamischen Modells Sequenzdiagramme (Sequence Diagram) Aktivitätsdiagramme (Activity Diagram) 31 / 195
68 Verhaltensdiagramme Zur UML gehören folgende Verhaltensdiagramme zur Beschreibung des dynamischen Modells Sequenzdiagramme (Sequence Diagram) Aktivitätsdiagramme (Activity Diagram) Interaktionsübersichtdiagramme Kommunikationsdiagramme Zeitverlaufsdiagramme Zustandsdiagramme 31 / 195
69 Anwendungsfalldiagramm Bibliotheksverwaltung 32 / 195
70 Klassendiagramm Bibliotheksverwaltung (Auszug) 33 / 195
71 Sequenzdiagramm Reise-Buchungssystem Abbildung : Peter Forbrig, Objektorientierte Softwarentwicklung mit UML 34 / 195
72 Aktivitätsdiagramm Kaffee trinken Abbildung : Peter Forbrig, Objektorientierte Softwarentwicklung mit UML 35 / 195
73 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 36 / 195
74 Anwendungsfalldiagramm - Übersicht 37 / 195
75 Anwendungsfalldiagramm - Details Anwendungsfalldiagramme enthalten: Akteure Anwendungsfälle Beziehungen 38 / 195
76 Anwendungsfalldiagramm - Details Anwendungsfalldiagramme enthalten: Akteure sind eine außerhalb des Systems liegende Rolle, d.h. ein Anwender oder ein anderes System Anwendungsfälle Beziehungen 38 / 195
77 Anwendungsfalldiagramm - Details Anwendungsfalldiagramme enthalten: Akteure sind eine außerhalb des Systems liegende Rolle, d.h. ein Anwender oder ein anderes System Anwendungsfälle beschreiben eine Aktivität eines Systems aus der Sicht seiner Akteure Beziehungen 38 / 195
78 Anwendungsfalldiagramm - Details Anwendungsfalldiagramme enthalten: Akteure sind eine außerhalb des Systems liegende Rolle, d.h. ein Anwender oder ein anderes System Anwendungsfälle beschreiben eine Aktivität eines Systems aus der Sicht seiner Akteure führen zu wahrnehmbaren Ergebnissen Beziehungen 38 / 195
79 Anwendungsfalldiagramm - Details Anwendungsfalldiagramme enthalten: Akteure sind eine außerhalb des Systems liegende Rolle, d.h. ein Anwender oder ein anderes System Anwendungsfälle beschreiben eine Aktivität eines Systems aus der Sicht seiner Akteure führen zu wahrnehmbaren Ergebnissen werden immer durch eine Akteur ausgelöst Beziehungen 38 / 195
80 Anwendungsfalldiagramm - Details Anwendungsfalldiagramme enthalten: Akteure sind eine außerhalb des Systems liegende Rolle, d.h. ein Anwender oder ein anderes System Anwendungsfälle beschreiben eine Aktivität eines Systems aus der Sicht seiner Akteure führen zu wahrnehmbaren Ergebnissen werden immer durch eine Akteur ausgelöst Beziehungen verknüpfen die Akteure mit den Anwendungsfällen, die sie anstossen 38 / 195
81 Anwendungsfalldiagramm - Regeln Für die Bestandteile eines (guten) Anwendungsfalldiagrammes gelten u.a. folgende Regeln: Akteure Anwendungsfälle Beziehungen 39 / 195
82 Anwendungsfalldiagramm - Regeln Für die Bestandteile eines (guten) Anwendungsfalldiagrammes gelten u.a. folgende Regeln: Akteure Namen sind ein Substantiv im Singular Anwendungsfälle Beziehungen 39 / 195
83 Anwendungsfalldiagramm - Regeln Für die Bestandteile eines (guten) Anwendungsfalldiagrammes gelten u.a. folgende Regeln: Akteure Namen sind ein Substantiv im Singular intuitiv verständlich und der Terminologie des Anwendungsbereiches entnommen Anwendungsfälle Beziehungen 39 / 195
84 Anwendungsfalldiagramm - Regeln Für die Bestandteile eines (guten) Anwendungsfalldiagrammes gelten u.a. folgende Regeln: Akteure Namen sind ein Substantiv im Singular intuitiv verständlich und der Terminologie des Anwendungsbereiches entnommen Anwendungsfälle enthalten ein Verb Beziehungen 39 / 195
85 Anwendungsfalldiagramm - Regeln Für die Bestandteile eines (guten) Anwendungsfalldiagrammes gelten u.a. folgende Regeln: Akteure Namen sind ein Substantiv im Singular intuitiv verständlich und der Terminologie des Anwendungsbereiches entnommen Anwendungsfälle enthalten ein Verb beschreiben Funktionalität mit wenigen Worten Beziehungen 39 / 195
86 Anwendungsfalldiagramm - Regeln Für die Bestandteile eines (guten) Anwendungsfalldiagrammes gelten u.a. folgende Regeln: Akteure Namen sind ein Substantiv im Singular intuitiv verständlich und der Terminologie des Anwendungsbereiches entnommen Anwendungsfälle enthalten ein Verb beschreiben Funktionalität mit wenigen Worten Beziehungen verknüpfen die Akteure mit genau den Anwendungsfällen, die sie anstossen 39 / 195
87 Übersicht Organisatorisches Dozenten Vorlesung und Übungen Klausur / Prüfungsleistung Skripte und Literatur Entwicklungsumgebungen und Werkzeuge Softwareentwicklung Entwicklungszyklen Anwendungsbeispiel Bibliothek Objektorientierte Softwareentwicklung Softwareentwicklung mit UML UML-Diagramme UML Diagramme detailliert Anwendungsfalldiagramm Klassendiagramm 40 / 195
88 Klassendiagramm - Übersicht 41 / 195
89 Klassendiagramm - Details Klassendiagramme stellen Klassen mit Attributen und Operationen (Methoden) sowie dar. 42 / 195
90 Klassendiagramm - Details Klassendiagramme stellen Klassen mit Attributen und Operationen (Methoden) sowie Generalisierungen und dar. 42 / 195
91 Klassendiagramm - Details Klassendiagramme stellen Klassen mit Attributen und Operationen (Methoden) sowie Generalisierungen und Assoziationen zwischen Klassen dar. 42 / 195
92 Klassendiagramm - Beispiel Generalisierung/Spezialisierung 43 / 195
93 Klassendiagramm - Umsetzung in Java - Geometrische Figur public class GeometrischeFigur { private int posx ; private int posy ; private boolean sichtbar ; } public void setposition ( int x, int y ) { this. posx = x ; this. posy = y ; } 44 / 195
94 Klassendiagramm - Umsetzung in Java - Rechteck public class Rechteck extends GeometrischeFigur { private int seitea ; // Seite a private int seiteb ; // Seite b } public void setseitea ( int a ) { if ( a > 0) { this. seitea = a ; } } 45 / 195
95 Klassen - Beispiel Point-Klasse aus dem AWT 46 / 195
96 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 47 / 195
97 Vier Grundpfeiler der Objektorientierten Programmierung Abbildung : Ratz, Scheffler e.a., Grundkurs Programmieren in Java 48 / 195
98 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 49 / 195
99 Generalisierung Generalisierung Klassen mit gemeinsamen Eigenschaften werden zu einer allgemeineren Klasse zusammengefasst. Der Pfeil im Klassendiagramm bezeichnet das Zusammenfassen führt von der Sub-Klasse zur Super-Klasse kann als ist ein -Beziehung gelesen werden Den entgegengesetzen Prozess bezeichnet man als Spezialisierung oder auch als Erweiterung. 50 / 195
100 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 51 / 195
101 Vererbung Vererbung Sub-Klassen erben die Attribute und Methoden, die in der Super-Klassen definiert wurden erweitern damit die Super-Klassen In Java wird Vererbung durch das Schlüsselwort extends angezeigt. Der Pfeil im Klassendiagramm zeigt dabei von der erbenden (Sub- / Kind-) Klasse zur vererbenden (Super- / Eltern-) Klasse kann als ist ein -Beziehung gelesen werden und daher als hat Alles, was auch ein(e)... hat Die Subklasse ist, hat und kann damit Alles, was auch die Superklasse ist, hat und kann. 52 / 195
102 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 53 / 195
103 Kapselung Kapselung / Data Hiding Attribute / Eigenschaften eines Objektes sollten nur von geeigneten Methoden verändert werden können. Daher verbirgt man diese Attribute und schützt sie damit vor fehlerhaftem Zugriff. In Java wird Kapselung durch den Modifizierer private vor einem Attribut / einer Methode angezeigt. public abstract class GeometrischeFigur { private double posx ; private double posy ; public void setposition ( double x, double y ) { } } 54 / 195
104 Kapselung Mit der UML lassen sich die Zugriffsmöglichkeiten durch ein vorangestelltes Zeichen darstellen: + für public - für private # für protected ~ für paketweite Sichtbarkeit (in Java fehlt dann der Modifizierer) 55 / 195
105 Kapselung - Zugriffsrechte Die Reichweite der einzelnen Zugriffrechte lässt sich darstellen als public zugreifbar aus allen Klassen protected zugreifbar in allen Sub-Klassen package (kein Modifizierer) zugreifbar in Klassen des Paketes private zugreifbar nur innerhalb der Klasse 56 / 195
106 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 57 / 195
107 Polymorphismus Polymorphismus bedeutet Vielgestalt befasst sich mit dem Überschreiben von Methoden Überschreiben von Methoden bedeutet dieselbe Botschaft kann gesendet werden an Objekte verschiedener Klassen einer Vererbungshierachie und die Empfängerobjekte jeder Klasse reagieren auf ihre jeweils eigene evtl. ganz unterschiedlich Art. Der Sender der Botschaft muss nicht wissen, zu welcher Klasse das Empfängerobjekt gehört. 58 / 195
108 Polymorphismus 59 / 195
109 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 60 / 195
110 Zugriffsrechte in Java Zugriff auf Instanz-Variablen (Attribute) von außerhalb einer Klasse sollen verboten werden. Dazu dient in Java das Schlüsselwort private in UML ein vorangestelltes - 61 / 195
111 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 62 / 195
112 Instanzmethoden Zugriff auf private Instanz-Variablen (Attribute) ist nun nur noch über Instanzmethoden möglich (also nur über Methoden aus Objekten der eigenen Klasse). Beispiel: Java public int getxposition ( ) { return xposition ; } + getxposition ( ) : int UML 63 / 195
113 Instanzmethoden Da der Zugriff auf private-attribute (nur noch) über Instanzmethoden möglich ist, können auch klassen- fremde Methoden mit Hilfe der Objekt-Referenz und der entsprechenden Instanzmethode indirekt und sicher auf das Attribut zugreifen. Beispiel: Java Circle kreis1 = new Circle ( ) ;... kreis1. getxposition ( ) ; / 195
114 Instanzmethoden Da der Zugriff auf private-attribute (nur noch) über Instanzmethoden möglich ist, können auch klassen- fremde Methoden mit Hilfe der Objekt-Referenz und der entsprechenden Instanzmethode indirekt und sicher auf das Attribut zugreifen. /AnwendungsGUI /kreis1:kreis new Kreis() getxposition 65 / 195
115 Instanzmethoden - Validierung und Erweiterung von Funktionalität Es gibt also Instanzmethoden zum Zugriff auf private Attribute (get- und set-methoden) zur Validierung von Eingaben zur Erweiterung der Funktionalität von Objekten 66 / 195
116 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 67 / 195
117 this-referenz Methoden, die lokale Variablen mit demselben Namen wie ein Objektattribut besitzen, können über die this-referenz auf das entsprechende Objektattribut zugreifen. Beispiel: Java public void setxposition ( int xposition ) { this. xposition = xposition ; } UML + setxposition ( xposition ) : void 68 / 195
118 this-referenz Jedes Objekt hat damit im Prinzip eine Instantvariable this, die eine Referenz auf das Objekt selbst enthält: 69 / 195
119 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 70 / 195
120 Klassenattribute und -methoden Attribute und Methoden, die einzelnen Instanzen einer Klasse (also den Objekten dieser Klasse) nicht sinnvoll zugeordnet werden können, und damit Eigenschaften beschreiben, die zur Gesamtheit aller Objekte dieser Klasse gehören, werden als statische Komponenten statische Methoden bzw. statische Attribute Klassenattribute bzw. -methoden bezeichnet. 71 / 195
121 Klassenattribute und -methoden Beispiel: Java private static int anzahl = 0 ;... public static void erhoeheanzahl (... ) { anzahl = anzahl + zusaetzlicheanzahl ; } + erhoeheanzahl(zusaetzlicheanzahl: int) : void 72 / 195
122 Klassenattribute und -methoden 73 / 195
123 Objekterzeugung / statische Variablen Beispiel: Java public static Student erzeugestudent ( ) { anzahl = anzahl + 1 ; return new Student ( ) ; }... Student stefan = Student. erzeugestudent ( ) ; System. out. println ( Student. getanzahl ( ) ) ; / 195
124 Übersicht Grundkonzepte der Objektorientierten Programmierung Die vier Grundpfeiler Generalisierung Vererbung Kapselung / Data Hiding Polymorphismus Kapselung Zugriffsrechte Instanzmethoden this-referenz Klassenattribute und -methoden Instantiierung und Initialisierung 75 / 195
125 Konstruktoren public Student ( ) {.... } Java public static Student erzeugestudent ( ) { anzahl = anzahl + 1 ; return new Student ( ) ; } 76 / 195
126 Konstruktoren sind keine Methoden, da sie nicht explizit aufgerufen werden heißen immer so wie die entsprechende Klasse können, wie Methoden, eine Parameterliste haben haben nie einen Rückgabetyp (nicht einmal void) Objekterzeugung mit Konstruktor public Student ( ) { anzahl = anzahl + 1 ; } Objekterzeugung mit Methode public static Student erzeugestudent ( ) { anzahl = anzahl + 1 ; return new Student ( ) ; } 77 / 195
127 Überladen von Konstruktoren Objekterzeugung mit Konstruktor public Student ( ) { anzahl = anzahl + 1 ; } public Student ( String name ) { anzahl = anzahl + 1 ; this. name = name ; } public Student ( String name, long matrikelnummer ) { anzahl = anzahl + 1 ; this. name = name ; this. matrikelnummer = matrikelnummer ; } 78 / 195
128 Objekterzeugung new Student ( ) 1. Speicherplatz organisieren, um die Instanzattribute abspeichern zu können 2. Belegung der Instanzvariablen mit ihren Standardwerten (also 0, null bzw. false) 3. Aufruf des Konstruktors mit den übergebenen Werten 3.1 Falls nicht explizit ein anderer Konstruktor angegeben ist: Aufruf des Standardkonstruktors der Super-Klasse (super()); insbesondere Initialisierung der geerbten Attribute, danach Initialisierung der eigenen Attribute 3.2 Falls die erste Anweisung super(...) lautet, wird der entsprechende Konstruktor der Superklasse aufgerufen und dann initialisiert 3.3 Falls die erste Anweisung this(...) lautet, wird der entsprechende Konstruktor derselben Klasse aufgerufen. 3.4 Ausführung der restlichen Anweisungen des Konstruktors 79 / 195
129 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 80 / 195
130 Abstrakte Klassen Abstrakte Klassen dienen mehreren Zwecken: Von abstrakten Klassen können keine Instanzen erzeugt werden Abstrakte Klassen dienen ausschließlich als Super-Klassen Nur abstrakte Klassen dürfen abstrakte Methoden definieren Abstrakte Klassen mit abstrakten Methoden erzwingen die Implementierung der abstrakt definierten Methoden in der Sub-Klasse (außer, diese ist auch abstrakt) Abstrakte Klassen garantieren, dass alle konkreten Subklassen Implementierungen der abstrakten Methoden anbieten Objekte aller konkreten Klassen sind auch Objekte der abstrakten (Super-) Klasse 81 / 195
131 Abstrakte Klassen Eine abstrakte Klasse liegt dann vor, wenn in der Klasse: nur die Schnittstelle (Signatur) von Methoden festgelegt wird und die eigentliche Implementierung einer, mehrerer oder aller Methoden erst in abgeleiteten Klassen vorgenommen wird Methoden, für die nur die Schnittstelle festgelegt werden soll und die also in einer Klasse keinen Methodenrumpf besitzen, müssen mit dem Schlüsselwort abstract deklariert werden. Ist auch nur eine einzige abstrakte Methode in einer Klasse enthalten, so ist die Klasse zwangsläufig abstrakt und daher mit dem Schlüsselwort abstract zu deklarieren. Abstrakte Klassen können nicht instantiiert werden. 82 / 195
132 Abstrakte Klassen - Beispiel 83 / 195
133 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 84 / 195
134 Abstrakte Klassen - Java und UML Abstrakte Klasse in Java public abstract class Waehrung { public abstract double getdollarbetrag ( ) ; } 85 / 195
135 Abstrakte Klassen - Vererbung 86 / 195
136 Abstrakte Klassen - Vererbung public class JapanischeYen extends Waehrung { private static double dollaryenkurs ; private double wert ; public JapanischeYen ( double wert ) { this. wert = wert ; } public static void setdollaryenkurs ( double neuerdolla { dollaryenkurs = neuerdollaryenkurs ; } public double getdollarbetrag ( ) { return wert dollaryenkurs ; } } 87 / 195
137 Abstrakte Klassen - Vererbung public class USDollar extends Waehrung { private double wert ; public USDollar ( double wert ) { this. wert = wert ; } public double getdollarbetrag ( ) { return wert ; } } 88 / 195
138 Abstrakte Klassen - Vorteile Waehrung [ ] geld = new Waehrung [ 3 ] ; geld [ 0 ] = new USDollar ( ) ; geld [ 1 ] = new JapanischeYen ( ) ; geld [ 2 ] = new Euro ( 4 2 ) ;... public double berechnesteuer ( Waehrung [ ] geld ) { double summe =0; for ( Waehrung w : geld ) { summe = summe + w. getdollarbetrag ( ) ; } }... steuern = berechnesteuer ( geld ) ; 89 / 195
139 Vererbung verhindern public final class NoKidsPlease { int a ; } public class Kid extends NoKidsPlease { int b ; } 90 / 195
140 Vererbung verhindern 91 / 195
141 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 92 / 195
142 Abstrakte Klassen... Mit Hilfe abstrakter Klassen kann man die Existenz gewisser Methoden sicherstellen können Fallunterscheidungen vermieden werden, weil jedes Objekt auch Objekt seiner Super-Klasse ist (und damit deren Methoden kennt). 93 / 195
143 ... und Interfaces public interface Wertgegenstand { public Waehrung wert ( ) ; }... public class Goldbarren implements Wertgegenstand { public static double preisprogrammindollar = 6 0 ; private double gewicht ; public Goldbarren ( double gewichtingramm ) { this. gewicht = gewichtingramm ; }.. public Waehrung wert ( ) { return new USDollar ( gewicht preisprogrammindoll } } 94 / 195
144 Interfaces in Java public interface Wertgegenstand { public Waehrung wert ( ) ; }... public class Goldbarren implements Wertgegenstand {... public Waehrung wert ( ) {... } } 95 / 195
145 Interfaces in UML 96 / 195
146 Abstrakte Klasse vs. Interface Abstrakte Klassen können konkrete Methoden haben erlauben keine Mehrfachvererbung (das ist in Java generell nicht erlaubt!) Interfaces dürfen nur abstrakte Methoden haben (und sind damit wirklich nur Schnittstellenvorgaben) Aber: Eine Klasse in Java darf zwar nur eine Superklasse haben, sie darf aber beliebig viele Interfaces implementieren. 97 / 195
147 Abstrakte Klasse vs. Interface 98 / 195
148 Interfaces und abstrakte Klasse public class Kruegerrand extends Waehrung implements Wertgegenstand { private static double kurs ; private double wert ; public Kruegerrand ( double wert ) { this. wert = wert ; } public double dollarbetrag ( ) { return wert kurs ; } public static void setkurs ( double neuerkurs ) { kurs = neuerkurs ; } public Waehrung wert ( ) { return this ; } } 99 / 195
149 Interfaces und abstrakte Klasse 100 / 195
150 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 101 / 195
151 Definition von Interfaces in Java interface MeineSchnittstelle { public final int EINEKONSTANTE = 3 2 ; public final double PI = ; } public void methodea ( int x ) ; double methodeb ( ) ; 102 / 195
152 Beispiel für Interfaces - Warenverwaltung Jede Ware verfüge über die Attribute Beschreibung Preis Warenkategorien seien Lebensmittel (Attribut: Kalorien) Spielwaren (Attribut: Mindestalter) Bücher (Attribut: Autor) Spielwaren und Bücher seien steuerpflichtig, Lebensmittel aber nicht. Idee: Konzept der Besteuerbarkeit einführen. Besteuerbare Artikel haben einen Steuersatz von 14 Prozent haben eine Methode berechnesteuer() 103 / 195
153 Beispiel für Interfaces - Umsetzung Ware Lebensmittel Spielware Buch Besteuerbar 104 / 195
154 Beispiel für Interfaces - Umsetzung Ware Superklasse (evtl. abstrakt) Lebensmittel Subklasse Spielware Subklasse Buch Subklasse Besteuerbar Interface 104 / 195
155 Beispiel für Interfaces - UML 105 / 195
156 Beispiel für Interfaces - UML 106 / 195
157 Typumwandlung - type cast Warum funktioniert es nicht: public static void main ( String [ ] args ) { Besteuerbar artikel1 = new Buch ( "Emma", , "Austin" ) ; Besteuerbar artikel2 = new Spielware ( "Lego", , 8 ) ; } System. out. println ( artikel1. berechnesteuer ( ) ) ; System. out. println ( artikel2. berechnesteuer ( ) ) ; artikel1. anzeigen ( ) ; 107 / 195
158 Typumwandlung - type cast public static void main ( String [ ] args ) { Besteuerbar artikel1 = new Buecher ( "Emma", , "Austin" ) ; System. out. println ( "Steuer fuer Artikel 1: " + artikel1. berechnesteuer ( ) ) ; } ( ( Buecher ) artikel1 ). anzeigen ( ) ; 108 / 195
159 Typumwandlung - type cast Wo muss hier gecastet werden? public static void main ( String [ ] args ) { Waren spielzeug ; Besteuerbar besteuerbar = new Spielwaren ( "Grobot", , 6 ) ; } spielzeug = besteuerbar ; spielzeug. anzeigen ( ) ; System. out. println ( "Tax: " + spielzeug. berechnesteuer ( ) ) ; 109 / 195
160 Typumwandlung - type cast Eine mögliche Antwort public static void main ( String [ ] args ) { Ware spielzeug ; Besteuerbar besteuerbar = new Spielware ( "Grobot", , 6 ) ; } spielzeug = ( Spielware ) besteuerbar ; spielzeug. anzeigen ( ) ; System. out. println ( "Tax: " + ( ( Besteuerbar ) spielzeug ). berechnesteuer ( ) ) ; 110 / 195
161 Typumwandlung - type cast Eine andere mögliche Antwort public static void main ( String [ ] args ) { Ware spielzeug ; Besteuerbar besteuerbar = new Spielware ( "Grobot", , 6 ) ; } spielzeug = ( Ware ) besteuerbar ; spielzeug. anzeigen ( ) ; System. out. println ( "Tax: " + ( ( Spielware ) spielzeug ). berechnesteuer ( ) ) ; 111 / 195
162 Konstanten in Interfaces Interfaces und Mehrfachvererbung Von verschiedenen Interfaces darf nur eine eine bestimmte Konstante enthalten. Verschiedene Interfaces dürfen aber dieselbe Methode deklarieren. Denn die Konstanten sind damit festgelegt und implementiert, können also nur einmalig definiert werden, es genügt aber, die evtl. mehrfach (in verschiedenen Interfaces) geforderte Methode einmal zu implementieren. 112 / 195
163 Beispiel für ein Interface in der Java API Sortieren Die Klasse Arrays definiert eine statische Methode sort(object[]), mit der Arrays sortiert werden können, wenn die Objekte im Array das Interface Comparable implementieren. http: //lmt.fh-swf.de/uploads/media/interfacesbeispiele.jar 113 / 195
164 Innere Klassen Innere Klassen Wird innerhalb einer Klasse eine andere Klasse definiert, so wird diese Klasse als innere Klasse bezeichnet / 195
165 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 115 / 195
166 Aufzählungstypen public enum Jahreszeit { FRUEHLING, SOMMER, HERBST, WINTER ; } 116 / 195
167 Instanzmethoden der Aufzählungsobjekte import de. profboecker. oopwing. enums. Jahreszeit ; import static de. profboecker. oopwing. enums. Jahreszeit. ; public class Aufzaehlungen { public static void main ( String [ ] args ) { Jahreszeit x = HERBST ; System. out. println ( x ) ; } } for ( Jahreszeit jz : Jahreszeit. values ( ) ) { System. out. println ( jz + " hat den Wert " + jz. ordinal ( ) ) ; } 117 / 195
168 Instanzmethoden der Aufzählungsobjekte tostring() equals(object anderesobjekt) ordinal() values() 118 / 195
169 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 119 / 195
170 Schablonen public class StringBox { private String wert ; public String getwert ( ) { return wert ; } public void setwert ( String wert ) { this. wert = wert ; } } public class IntBox { private int wert ; public int getwert ( ) { return wert ; } public void setwert ( int wert ) { this. wert = wert ; } } 120 / 195
171 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 121 / 195
172 Klassenschablonen public class Box<T> { private T wert ; public T getwert ( ) { return wert ; } public void setwert ( T wert ) { this. wert = wert ; } } 122 / 195
173 Formaler Typ-Parameter An Stelle eines konkreten Typs steht ein formaler Typ-Parameter, der hier T heisst, der nur zu Beginn einmal hinter dem Klassennamen in spitzen Klammern angegeben wird (z.b. Box<T>) und der dann in der Klasse anstelle eines konkreten Typs benutzt werden kann. Um die Klasse Box<T> nutzen zu können, müssen Instanzen von ihr mit einem konkreten Typ erzeugt werden. Box<String> stringbox = new Box<String >(); Box<Integer> integerbox = new Box<Integer >(); Box<Punkt> punktbox = new Box<Punkt >(); punktbox. getwert ( ). getx ( ) ; 123 / 195
174 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 124 / 195
175 Methodenschablonen Generische Datentypen (Generics) können auch in normalen Klassen eingesetzt werden, z.b. in Methoden, die die verwendeten Typen generisch vorschreiben: public static <T> T random ( T eines, T anderes ) { T welches ; if ( Math. random ( ) > 0. 5 ) { welches = eines ; } else { welches = anderes ; } return welches ; } 125 / 195
176 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 126 / 195
177 Raw-Types Generische Klassen müssen nicht unbedingt parametrisiert werden. Box<Punkt> punktbox = new Box<Punkt >(); Box objektbox = new Box ( ) ; Alle Objekte sind Instanzen von Object; deswegen geht das (implizit wird Object benutzt. viele neue parametrisierte Klassen der API könnten sonst nicht mehr benutzt werden (z.b. Comparable) public interface Comparable<T> { public int compareto ( T o ) ; } Deswegen sind dann oft Type-Casts notwendig. 127 / 195
178 Übersicht Abstrakte Klassen, Vererbung und Interfaces Abstrakte Klassen Abstrakte Klassen in Java und UML Abstrakte Klassen und Interfaces Interfaces detailliert Enumerations Deklaration eines Aufzählungstyps Generische Datentypen Idee Klassenschablonen Methodenschablonen Raw-Types instanceof-operator und getclass() 128 / 195
179 Klassen-Abfrage Von welcher Klasse? Wie findet man eigentlich heraus, von welcher Klasse ein konkretes Objekt eine Instanz ist? 129 / 195
180 Beispiel 130 / 195
181 instanceof-operator if ( ware instanceof Ware ) { System. out. println ( ware. getbeschreibung ( ) + " ist eine Instanz von Ware." ) ; } if ( ware instanceof Besteuerbar ) { ware. berechnesteuer ( ) } 131 / 195
182 getclass()-methode for ( Ware ware : inventar ) { System. out. println ( ware. getbeschreibung ( ) + " ist eine Instanz von " + ware. getclass ( ) ) ; } 132 / 195
183 getclass()-methode vs instanceof instanceof liefert also true, wenn das Objekt eine Instanz der angegebenen Klasse ist oder das angegebene Interface implementiert getclass() liefert die Klasse (ein Objekt der Klasse Class, von der das Objekt erzeugt wurde und damit nur die für das Objekt unterste Ebene der Vererbungshierarchie. Objekte der Klasse Class implementieren u.a. die Methoden Class getsuperclass() zur Bestimmung der Superklasse Class[] getinterfaces() zur Bestimmung der implementierten Schnittstellen 133 / 195
184 Gleichheit von Objekten Da alle Klasse in Java von Object erben, erben sie auch die Methode equals() zur Überprüfung auf Gleichheit zweier Objekte. equals() sollte überschrieben werden Da equals() in der Originalversion (aus Object) die Referenzen auf Gleichheit prüft, also zwei Objekte nur dann als gleich ansieht, wenn die Referenzen dieselben sind (also faktisch dasselbe Objekt referenziert wird) sollte die equals()-methode immer überschrieben werden. 134 / 195
185 Gleichheit von Objekten - Überschreiben von equals() public boolean equals ( Object anderesobjekt ) { if ( anderesobjekt instanceof Buch ) { return this. isbn == ( ( Buch ) anderesobjekt ). getisbn ( ) ; } else { return false ; } } 135 / 195
186 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 136 / 195
187 Attribute - UML 137 / 195
188 Attribute - Java public class Tagung { private String name = new String ( ) ; private Adresse ort ; private GregorianCalendar termin ; } 138 / 195
189 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 139 / 195
190 Methoden - UML 140 / 195
191 Attribute - Java public class Tagung { public void ankuendigungversenden ( ) { } } public void anmelden ( Wissenschaftler t ) { teilnehmer. addelement ( t ) ; } public void buchen ( double gebuehr ) { } public boolean anfragen ( Wissenschaftler t ) { return true ; } 141 / 195
192 get- und set-methoden und Konstruktoren - Java public class Tagung { public Tagung ( ) { } public void setname ( String neuername ) { this. name = neuername ; } public String getname ( ) { return name ; } } 142 / 195
193 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 143 / 195
194 Generalisierung - UML 144 / 195
195 Vererbung - Java public class Workshop extends Tagung { private Integer maximalteilnehmer ; public void anmeldenleiter ( Wissenschaftler teilnehmer ) { } public boolean buchen ( Double gebuehr ) { return false ; } } 145 / 195
196 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 146 / 195
197 Schnittstellen/Interfaces - UML 147 / 195
198 Interfaces - Java public interface Zahlung { public void zahlungausfuehren ( Waehrung gebuehr ) ; } public class Barzahlung implements Zahlung public void zahlungausfuehren ( Waehrung gebuehr ) { } } 148 / 195
199 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 149 / 195
200 Assoziationen - UML 150 / 195
201 Assoziationen - Java public class Tagung {... public ArrayList<Wissenschaftler> teilnehmer ;... } public class Wissenschaftler {... public Tagung veranstaltung ;... } 151 / 195
202 Aggregation - UML 152 / 195
203 Aggregation - Java public class WissenschaftlicherBeitrag { public Text artikel ; public WissenschaftlicherBeitrag ( ) { artikel = new Text ( ) ; } }... public class Text {... } 153 / 195
204 Komposition - UML 154 / 195
205 Komposition - Java public class WissenschaftlicherBeitrag { public Text artikel ; private class Text {... } } public WissenschaftlicherBeitrag ( ) { artikel = new Text ( ) ; } 155 / 195
206 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 156 / 195
207 Collection API - UML 157 / 195
208 Listen und andere Container 158 / 195
209 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 159 / 195
210 Die Schnittstellen Iterable und Iterator public interface Iterable<T> { Iterator<T> iterator ( ) ; } public interface Iterator<T> { public boolean hasnext ( ) ; public T next ( ) ; public void remove ( ) ; } 160 / 195
211 Die Schnittstellen Iterable und Iterator - Beispiel // While - Schleife mit Iterator Iterator<String> iterator = testarray. iterator ( ) ; while ( iterator. hasnext ( ) ) { System. out. println ( iterator. next ( ) ) ; } // For - Schleife mit Iterator for ( Iterator<String> i = testarray. iterator ( ) ; i. hasnext ( ) ; ) { System. out. println ( i. next ( ) ) ; } // For -Each - Schleife for ( String text : testarray ) { System. out. println ( text ) ; } 161 / 195
212 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 162 / 195
213 Die Schnittstelle Set public interface Set<T> { Iterator<T> iterator ( ) ; // Hinzufuegen, falls equals() "false" liefert boolean add ( T e ) ; // Entfernen eines Elementes boolean remove ( Object e ) ; // Mengen - Vereinigung boolean addall ( Collection <? extends T> c ) ; // Schnitt -Menge boolean retainall ( Collection<?> c ) ; // Entfernen von mehreren Elementen boolean removeall ( Collection<?> c ) ; } 163 / 195
214 Die Klasse HashSet public class HashSet<T> implements Set<T>, Cloneable, Serializable {... } 164 / 195
215 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 165 / 195
216 Die Schnittstellen Comparable und SortedSet public interface SortedSet<T> { public T first ( ) ; public T last ( ) ; public SortedSet<T> headset ( T biselement ) ; public SortedSet<T> tailset ( T vonelement ) ; public SortedSet<T> subset ( T vonelement, T biselement ) ; } public interface Comparable<T> { int compareto ( T andereselement ) ; } 166 / 195
217 Die Klasse TreeSet public class TreeSet<T> implements Set<T>, SortedSet<T>, Cloneable, Serializable, Iterable<T> {... } 167 / 195
218 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 168 / 195
219 Die Schnittstelle List public interface List<T> { public add ( T element ) ; public add ( int psoition, T element ) ; public T get ( int position ) ; public int indexof ( Object objekt ) ; public int lastindexof ( Object objekt ) ; public T remove ( int position ) ; public T set ( int position, T element ) ; } public interface Comparable<T> { int compareto ( T andereselement ) ; } 169 / 195
220 Die Klassen ArrayList und LinkedList 170 / 195
221 Übersicht Spezielle Konzepte - UML und Java Attribute - UML und Java Methoden - UML und Java Generalisierung/Vererbung - UML und Java Interfaces - UML und Java Beziehungen zwischen Klassen - UML und Java Listen und Mengen Listen in Java Iteratoren und Iterable Mengen - HashSet und Set Sortierte Mengen - TreeSet und SortedSet Listen - ArrayList und LinkedList Suchen und Sortieren - Collections und Arrays 171 / 195
222 Die Klasse Collections public static <T> int binarysearch ( List<? extends Comparable<? super T>> list, T schluessel )... } sucht nach dem Objekt schluessel in der Liste List. Wichtig Es muss sichergestellt sein, dass die Liste List zuvor aufsteigend sortiert worden ist (durch die Methode sort). 172 / 195
223 binarysearch(...) und sort() in Collections binarysearch(...) liefert den Index, unter dem der schluessel in der Liste List gespeichert ist, falls er enthalten ist liefert ansonsten p 1, wobei p der Index ist, unter dem schluessel in der Liste List eingefügt werden müsste. sort(...) static <T extends Comparable <? super T>> void sort ( List<T> list )... } sortiert die Liste List in aufsteigender Reihenfolge. 173 / 195
224 Die Klasse Arrays public static int binarysearch ( xxx [ ] sucharray, xxx schluessel )... } sucht nach schluessel im Array sucharray. Wichtig Es muss sichergestellt sein, dass die Liste List zuvor aufsteigend sortiert worden ist (durch die Methode sort). 174 / 195
225 binarysearch(...) und sort() in Arrays binarysearch(...) liefert den Index, unter dem der schluessel in der Liste List gespeichert ist, falls er enthalten ist liefert ansonsten p 1, wobei p der Index ist, unter dem schluessel in der Liste List eingefügt werden müsste. sort(...) public static void sort ( xxx [ ] array ) {... } sortiert die Liste List in aufsteigender Reihenfolge (im Sinne von compareto(). 175 / 195
226 Die Klassen Collections und Arrays compareto() und equals() sollten konsistent definiert sein, d.h. es ist darauf zu achten, dass compareto() genau dann 0 liefert, wenn equals() true liefert. 176 / 195
227 Welche Klasse sollte man wann nehmen? Vorschläge für die Auswahl der Klassen: Ist eine Sequenz, also eine feste Ordnung gewünscht? Wenn ja, dann nehme man eine Liste. Soll es einen schnellen Zugriff über einen Index geben? Wenn ja, ist die ArrayList gegenüber der LinkedList im Vorteil. Werden oft am Ende und Anfang Elemente eingefügt? Dann kann die LinkedList punkten. Wenn eine Reihenfolge der Elemente uninteressant ist, aber schnell entschieden werden soll, ob ein Element Teil einer Menge ist, erweist sich HashSet als interessant. Sollen Elemente nur einmal vorkommen und immer sortiert bleiben? Dann ist TreeSet eine gute Wahl. Muss es eine Assoziation zwischen Schlüssel und Elementen geben, ist eine Map von Vorteil. 177 / 195
228 Übersicht Ein- und Ausgabe Ein- und Ausgabe über Streams Dateien und Verzeichnisse Character-Streams Byte-Streams Serialisierung und Deserialisierung von Objekten 178 / 195
229 Ein- und Ausgabe-Streams Sämtliche Ein- und Ausgaben laufen in Java stromorientiert ab, d. h. sie werden mit Hilfe eines so genannten Stream-Konzepts abgewickelt. Dabei ist ein Stream (Strom) eine Verbindung zwischen einem Programm und einer Datenquelle oder einer Datensenke (also einem Datenziel). Diese Verbindung, d. h. ein Stream verläuft dabei stets nur in einer Richtung. 179 / 195
230 Ein- und Ausgabe-Streams 180 / 195
Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrObjektorientierte 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/
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
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
Mehr09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrObjektorientierte 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
MehrEinfü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
MehrKlassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla
BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrKapitel 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
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
MehrKlassendiagramm. (class diagram)
: Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau
MehrKapitel 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
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
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrKapitel 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
Mehr7. 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
MehrObjektorientierte 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)
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrProgrammiersprache 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
Mehr4. 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 ++) {
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrPrinzipien 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........................
MehrPrüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
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
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
Mehr5. 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:
MehrWillkommen 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
MehrEinführung in die Programmierung für NF
Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone
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
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
MehrII. 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
MehrAufgabenblatt 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
MehrKapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?
Kapitelübersicht Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge Was bedeutet Objektorien+erung? ObjektorienCerte Analyse und Design die Objektmodellierung
MehrVererbung & 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
Mehr5. 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,
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrSoftware 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
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
MehrInstitut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.
Institut für Telematik Universität zu Lübeck Programmieren Kapitel 0: Organisatorisches Wintersemester 2008/2009 Prof. Dr. Christian Werner 1-2 Überblick Ziele Inhaltsüberblick Ablauf der Veranstaltung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrProgrammierkurs 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
MehrUnified Modeling Language (UML)
Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrFolge 18 - Vererbung
Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,
MehrEinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2
EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2
Mehr5.6 Vererbung. Vererbung
5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug
MehrSEQUENZDIAGRAMM. Christoph Süsens
SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrOO 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
MehrAlgorithmen 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
MehrClient-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
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrEINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.
EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
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,
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrInteraktionen 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
MehrSoftwaretechnik (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
Mehr13 OOP MIT DELPHI. Records und Klassen Ein Vergleich
13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,
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
MehrJetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.
Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens
MehrVgl. Oestereich Kap 2.7 Seiten 134-147
Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
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
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrAbschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
MehrVorlesung "Software-Engineering"
Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse
MehrWhiteStarUML Tutorial
WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
Mehr13. Tutorium zu Programmieren
13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting
MehrEinführung in die Informatik II
Einführung in die Informatik II Vorlesung Sommersemester 2013 Prof. Dr. Nikolaus Wulff Ziele der Vorlesung Sie vertiefen die Kenntnisse aus Informatik I und runden diese in weiteren Anwendungsgebieten
MehrUse Cases. Use Cases
Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben
Mehr5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
Mehr