Objektorientierte Softwareentwicklung heißt:

Größe: px
Ab Seite anzeigen:

Download "Objektorientierte Softwareentwicklung heißt:"

Transkript

1 Inhalt: Oose- Einstieg Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Konstruktoren Beziehungen zwischen Objekten I Beziehungen zwischen Objekten II Übersicht Beziehungstypen Vererbung Sequenzdiagramme mit UML Anwendungsfalldiagramm (UML) Datenbankanbindung Softwareentwicklung und Wasserfallmodell Version

2

3 Objektorientierte Softwareentwicklung heißt: Systematischer Programmentwurf in mehreren Schritten (OOA,OOD,OOP,OOT) Die Welt wird mit Objekten/Klassen beschrieben, welche bestimmte Eigenschaften und Fähigkeiten haben. Die Objekte/Klassen stehen dabei miteinander in Beziehung und interagieren.

4 OOA Objektorientierte Analyse OOD Objektorientiertes Design OOP Objektorientierte Programmierung OOT Objektorientierter Test

5 OOA Objektorientierte Analyse Analyse des Problems WAS soll das Programm tun? grundsätzliche Strukturen werden identifiziert Vorstrukturierung von Klassen- /Objektstrukturen Fragen der technischen Implementierung VÖLLIG vernachlässigt. Ergebnis der OOA : Use-Case- Diagramme, Aktivitätsdiagramme oder (sehr grob gehaltene) Klassendiagramme.

6 OOD Objektorientiertes Design WIE soll das Programm es tun? Ergebnisse der vorigen Schritte werden konkretisiert. Wie werden einzelne Prozesse und Interaktionen realisiert? Wie wird die Datenhaltung realisiert? Wie spielen die einzelnen Schichten (z.b. MVC) zusammen? Aspekte der zu verwendenden Programmiersprache werden relevant (Datentypen; ist Überladung, Mehrfachvererbung möglich?). Als Ergebnis steht ein möglichst konkretes Klassendiagramm. Anmerkung: Die Grenzen zwischen OOA und OOD sind fließend.

7 OOP Objektorientierte Programmierung Umsetzung, d.h. Implementierung der Ergebnisse aus OOA/OOD in Programmcode einer konkreten objektorientierten Programmiersprache.

8 OOT Objektorientierter Test Macht das Programm das, was es soll? Definieren und Durchführen von Testfällen.

9 Objektorientierte Softwareentwicklung 9

10 Problembeschreibung: Sie sind Mitglied einer Entwicklungsabteilung, welche ein Vektorzeichenprogramm entwickeln soll. Sie bekommen den Auftrag die Komponente zur Darstellung von Rechtecken zu entwickelt. Die Software soll objektorientiert sein. 10

11 Wie sehen Beispiel-Rechtecke aus? r1 5 cm r2 3,4 cm 5,24cm 4cm r4 r3 11

12 Welche allgemeinen Eigenschaften hat ein Rechteck? Farbe Seite A (Länge) Seite B (Länge) 12

13 Die allgemeinen Eigenschaften werden in einer so genannten Klasse festgehalten. Klassen werden in UML wie folgt dargestellt: Klassenname Attribute 13

14 Das Objektdiagramm für die konkreten Rechtecke r1 und r2 lautet: 14

15 Überlegen von sinnvollen Datentypen für die Attribute:? 15

16 Wie werden die Attribute umgesetzt? Überlegen geeigneter Datentypen (abhängig von Programmiersprache): Klassenname Attribute mit Datentypen 16

17 Klassen in UML-Darstellung werden wie folgt in JAVA umgesetzt: Datei Rechteck.java: 17

18 Die Objekte werden innerhalb einer anderen Datei (hier Testrechteck.java) erzeugt. Diese Datei und die Datei Rechteck.java müssen im selben Verzeichnis liegen! Hier startet das Programm Objekt erzeugen Objekt mit Werten füllen. 18

19 Überlegen von Testfällen, um zu überprüfen, ob das Programm das macht, was es soll. Für das Beispiel: Ausgabe der Objekteattribute nach Objekterzeugung und Wertezuweisung auf dem Bildschirm. 19

20 public class TestRechteck { public static void main(string[] args) { Rechteck r1 = new Rechteck(); r1.seitea = 5; r1.seiteb = 4; r1.farbe = "blau"; Rechteck r2 = new Rechteck(); r2.seitea = 3.4; r2.seiteb = 5.24; r2.farbe = "lila"; // Ausgabe der Objekte System.out.println("Rechteck r1:"); System.out.println("SeiteA:" + r1.seitea); System.out.println("SeiteB:" + r1.seiteb); System.out.println("Farbe:" + r1.farbe); // Ausgabe der Objekte System.out.println("\nRechteck r2:"); System.out.println("SeiteA:" + r2.seitea); System.out.println("SeiteB:" + r2.seiteb); System.out.println("Farbe:" + r2.farbe); } } 20

21 Objektorientierte Softwareentwicklung 21

22 Bislang ist das Objekt rein passiv. Es können über die Attribute nur Werte zugewiesen bzw. wieder ausgelesen werden. Um den Objekt eigene Funktionalität zu geben müssen Methoden (Operationen, Funktionen) zugefügt werden. 22

23 Das Objekt soll die Fähigkeit gekommen, die Werte seiner Attribute selbst auszugeben. Diese Fähigkeit soll zeigedaten heißen. 23

24 Fähigkeiten werden als Methoden realisiert. Diese erscheinen im Klassendiagramm im unteren Teil aufgelistet. Methoden werden nicht im Objektdiagramm dargestellt. Methodenname 24

25 25

26 Datei Rechteck.java: Zugriff die eigenen Objektattribute. 26

27 Zum Testen wird ein Beispielobjekt erzeugt und die Methode zeigedaten dieses Objektes aufgerufen. Die Objektattribute sollten dann vollständig auf dem Bildschirm erscheinen. 27

28 Datei Testrecheck.java 28

29 Programmcode ausführen Programmcode übersetzen Datei Testrechteck.java: Datei Rechteck.java: 29

30 Objektorientierte Softwareentwicklung 30

31 Bislang werden die Objektattribute durch direkten Zugriff von außen gesetzt. Dies hat den Nachteil, dass das Objekt keine Möglichkeit hat auf fehlerhafte Wertzuweisungen zu reagieren. Zum Setzen der Attribute ist es daher sinnvoll Methoden einzusetzen. Diese können dann ggf. fehlerhafte Wertzuweisungen abfangen. 31

32 Sie Klasse Rechteck soll durch zwei Methoden setzea und setzeb erweitert werden. Diese Methoden sollen die Objektattribute seitea und seiteb setzen und überprüfen, ob die Werte positiv sind. Bei negativen Werten soll eine Fehlermeldung ausgegeben werden. 32

33 ? Wie kann man der Methode einen Wert mitteilen/übergeben? 33

34 Vorüberlegungen: 1. Braucht die Methode Parameter? JA, der Methode muss eine Länge übergeben werden. Der Parameter muss vom Typ double sein, da die Seitenlänge eine Kommazahl sein kann. 34

35 Methodenname Ein Parameter vom Typ double Der Parameter hat den Namen a. Unter diesem Namen kann der Parameter angesprochen werden. 35

36 Test, ob a positiv Setzen den Attributs seitea Auf den übergebenen Wert. Fehlermeldung falls a negativ. 36

37 Beispielobjekt erzeugen und mit setzen- Methoden mit sinnvollen Werten belegen. Objektdaten ausgeben (mit zeigedaten- Methode). Weiterer Testfall: auch Objekt mit sinnlosen Werten erzeugen, um IF-ELSE-Struktur zu testen. 37

38 Objekt erzeugen Objektattribute über die Methoden setzen. Wert negativ. Liefert eine Fehlermeldung. Anmerkung: Die Ausgabe der Objektdaten ist noch zu ergänzen. 38

39 Objektorientierte Softwareentwicklung 39

40 Ein Programm soll ein Rechteckobjekt erzeugen und mit den Methoden setzea und setzeb die Seitenlängen setzen. Nur wenn das Rechteck fehlerfrei d.h. mit positiven Werten für a und b - erzeugt wurde, sollen die Objektdaten auf dem Bildschirm ausgegeben werden. 40

41 Problem: Das Programm, welches das Objekt Rechteck erzeugt, weiß nicht, ob die Attribute korrekt gesetzt wurden. 41

42 Lösung: Die Methoden, welche die Seitenlängen setzen, müssen nach außen mitteilen, ob das Setzen erfolgreich war. Mögliche Antworten sind: Ja Setzen erfolgreich. Nein Setzen nicht erfolgreich. 42

43 Die Funktion hat ein Rückgabewert vom Typ boolean. Wenn die Attribute korrekt gesetzt wurden soll die Methode true zurückgeben, sonst false. 43

44 Rechteck +seitea: double +seiteb: double +farbe: String +setzea(a: double): boolean +setzeb(b: double): boolean Mitteilen des Ergebnis Nach außen. 44

45 45

46 Objektorientierte Softwareentwicklung 46

47 Es soll eine Klasse Messwerte entwickelt werden: Diese Klasse kann bis zu 100 Messewerte verwalten. Die Klasse hat Methoden um einen neuen Messwert hinzuzufügen (alle bisherigen Messwerte sollen erhalten bleiben), alle bislang gespeicherten Messwerte auf dem Bildschirm auszugeben, um den Durchschnitt aller Messwerte zu berechnen. 47

48 Problem: Wie sollen bis zu 100 Werte als Objektattribute verwaltet werden? Lösung 1: Es werden 100 Attribute angelegt. Schlechte Lösung da: Hoher Aufwand 100 Variablen anzulegen! Aufwendige Programmierung, da 100 Attributnamen. Unflexibel, da Programm schwierig zu erweitern, wenn noch mehr Werte verwaltet werden sollen. 48

49 Lösung: es muss ein Array als Attribut verwendet werden, welches die Messwerte speichert. Problem: Das Array weiß nur, wie viele Werte es maximal (100) aufnehmen kann. Es weiß aber nicht, welche Position im Array als nächstes frei ist. Lösung: Das Objekt muss sich merken, welches die nächst freie Position ist. 49

50 Messwerte -werte: double[0..100] -freieposition: int = 0 +werthinzufuegen(double wert): void +zeigeallewerte(): void +berechnedurchschnitt(): double 50

51 51

52 52

53 Objektorientierte Softwareentwicklung 53

54 Für ein Autohaus soll eine objektorientierte Software zur Verwaltung von Fahrzeugen und Kunden entwickelt werden. Jedem Auto kann dabei ein Kunde als Besitzer zugeordnet werden (unverkaufte Autos haben keinen offiziellen Besitzer). 54

55 Beispiel: Der Kunde Max Mustermann steht mit einem Opel Baujahr 2010 in Beziehung: 55

56 ? 56

57 Multiplizität Leserichtung des Assoziationsnames Navigierbarkeit besitzt Assoziationsname Rollenname Assoziation Anmerkung: Die Multiplizität sagt aus, mit wie vielen anderen Objekten ein Objekt in Beziehung stehen kann. Die Kardinalität sagt aus, mit wie vielen es wirklich in Beziehung steht (macht also nur in Objektdiagrammen Sinn). 57

58 public class Auto { private String hersteller; private int baujahr; private Kunde Besitzer; public void setzehersteller(string h) { this.hersteller=h; } public void setzebaujahr(int j) { this.baujahr=j; } public class Kunde { private String vorname; private String nachname; public void setzevorname(string v) { this.nachname=v; } public void setzenachname(string n) { this.nachname=n; } public void setzebesitzer(kunde b) { this.besitzer=b; } } Anmerkung: welche Auswirkung hätte die Multiplizität 1 statt 0..1 für die Umsetzung? } 58

59 public class test { public static void main(string[] args) { // Kunde erzeugen Kunde k1 = new Kunde(); k1.setzevorname("max"); k1.setzenachname("mustermann"); // Auto erzeugen Auto a1 = new Auto(); a1.setzehersteller("opel"); a1.setzebaujahr(2010); // Dem Auto einen Kunden zuordnen a1.setzebesitzer(k1); } } 59

60 Objektorientierte Softwareentwicklung 60

61 Es soll eine objektorientierte Software zur Verwaltung von Schülern und Schulklassen entwickelt werden. Sowohl Schüler als auch Schulklassen sollen in der Software als Objekte repräsentiert werden. Die Schulklasse soll sich ihre Schüler merken. Dazu soll diese über eine Methode zum Hinzufügen eines Schülers und eine Methode zum Anzeigen aller Schüler verfügen. 61

62 Testbeispiel-Objektstruktur: k1 : Schulklasse bezeichnung="12foi2" schulform="fos" s1 : Schueler name="simpson" vorname="bart" nummer=1234 s2 : Schueler name="van Houten" vorname="milhouse" nummer=

63 Darstellung eines Schülers: 63

64 Darstellung einer Schulklasse: 64

65 Beziehung zwischen Schulklasse und Schüler? 65

66 66

67 Für die Klasse Schueler gibt es keine Besonderheiten. Sie wird wie gehabt implementiert. 67

68 Problem: Die Klasse Schulklasse muss sich viele Schüler merken. Lösung: Die Klasse Schulklasse merkt sich in einem Array alle Schüler. 68

69 Lösung: Die Klasse Schulklasse merkt sich in einem Array alle Schüler. Dabei ist folgendes zu überlegen: Das Array ist vom Typ Schueler. Das Array muss groß genug sein (hier 31). Das Array muss einen Namen haben (hier: SchülerInKlasse). Das Array wird der Reihe nach aufgefüllt. Die erste Position ist daher die 0, die letzte die 30 (da 31 Einträge). Man muss sich merken, welches die nächste freie Position im Array ist. Alle Plätze davor sind belegt. 69

70 70

71 Array für Schüler Variable für freie Position 31 Schüler in Array einfügen freie Position eins weiter schalten Alle Schüler im Array der Reihe nach ausgeben. 71

72 72

73 Objektorientierte Softwareentwicklung 73

74 Assoziation: Klasse A und B stehen locker in Beziehung. Es ist keine Aussage darüber getroffen wer wen kennt. Assoziation mit Navigierbarkeit (in eine Richtung): Klasse A und B stehen in Beziehung. Dabei kennt / benutzt Klasse A Klasse B. Umsetzung: Referenz auf Klasse B in Klasse A. 74

75 Klasse A und Klasse B stehen in Beziehung. Klasse A kennt / benutzt Klasse B und umgekehrt (Navigierbarkeit geht in beide Richtungen). Umsetzung: Die Klassen referenzieren sich gegenseitig. Klasse A und Klasse B stehen in Beziehung. Klasse A kennt / benutzt Klasse B. Von Klasse B ist Klasse A aber nicht erreichbar (d.h. keine Referenz in diese Richtung). 75

76 Aggregation: Komposition: Aggregationen bzw. Kompositionen sind spezielle Assoziationen, die "Teile/Ganzes"-Beziehung beschreiben. Das "Teil des "Ganzen kann bei der Aggregation auch einzeln existieren, bei der Komposition nur, wenn auch das "Ganze" existiert. Das "Ganze" befindet sich auf der Seite der Raute. Bei der Implementierung werden Aggregationen und Kompositionen häufig nicht anders als normale Assoziationen behandelt. 76

77 Beispiel für eine Aggregation: Die Räder sind Teil von einem Auto und können auch ohne das Auto existieren. Beispiel für eine Komposition: Ein Gehirn ist ein Teil von einem Menschen. Ohne den Menschen kann das Gehirn aber nicht existieren. 77

78 Objektorientierte Softwareentwicklung 78

79 Die Aufgabe des Konstruktors ist es bei der Objekterzeugung bestimmte Vorbereitungen zu erledigen (z.b. Variablen mit Startwerten zu belegen), ohne die ein Arbeiten mit dem Objekt nicht möglich ist.

80 Es soll eine Klasse Rechteck entwickelt werden. Bereits bei Objekterzeugung sollen die Seitenlängen gesetzt werden. Es wird ein Konstruktor zum Setzen der Seitenlängen benötigt: 80

81 Konstruktoren werden als spezielle Methoden aufgeführt. 81

82 Implementierung der Klasse Rechteck: Objekterzeugung: Nicht mehr möglich ist jedoch: 82

83 Die Klasse Rechteck soll erweitert werden: Die Objekterzeugung ohne Werteübergabe bei Objekterzeugung soll ermöglich werden. Zusätzlich soll bei Objekterzeugung optional auch das Attribut Farbe gesetzt werden können. 83

84 Es werden mehrere Konstruktoren eingeführt. Diese können wahlweise für die Objekterzeugung verwendet werden. 84

85 Implementierung der Klasse Rechteck: Möglichkeiten der Objekterzeugung: 85

86 Objektorientierte Softwareentwicklung 86

87 Für einen Betrieb ist eine Mitarbeiterverwaltung zu entwickeln. In dem Betrieb gibt es zwei Arten Mitarbeiter: Angestellte und Arbeiter Angestellte erhalten einen Basislohn und eine Provision, während Arbeiter einen Stundenlohn erhalten. 87

88 Angestellte und Arbeiter haben als Mitarbeiter gemeinsame Eigenschaften (Name, Vorname,..) und Methoden. Zusätzlich haben die Mitarbeiter spezielle Eigenschaften und Methoden, die sich voneinander unterscheiden je nachdem, ob die Angestellte oder Arbeiter sind. Idee: Gemeinsamkeiten zusammenfassen und nach Unterschieden spezialisieren. 88

89 Spezialisierung Generalisierung Gemeinsamkeiten Unterschiede Alle Angestellte und Arbeiter haben / erben alle Eigenschaften und Methoden von Mitarbeitern und erweitern diese entsprechend. Erben können jedoch nicht direkt auf geerbte private-attribute zugreifen. Der Zugriff erfolgt über die setzen/liefere-methoden (set/get-methoden). Überlegung: Wie müssen sich die Methoden berechnegehalt und zeigedaten verhalten? 89

90 90

91 private private 91

92 private private 92

93 93

94 94

95 Die Klasse, von der geerbt wird, nennt man Oberklasse. Die erbende heißt Unterklasse. Die Methoden zeigedaten und berechnegehalt werden von der Unterklasse überschrieben (override). Dadurch verhalten sich die Methoden von Mitarbeitern unterschiedlich (Angestellter, Arbeiter). Die Möglichkeit des unterschiedlichen Verhaltens eines Mitarbeiters wird Polymorphie (Vielgestaltigkeit) genannt. 95

96 Objektorientierte Softwareentwicklung 96

97 UML Sequenzdiagramme dienen dazu Interaktionen zwischen Objekten darzustellen. Objekte interagieren über Methodenaufrufe miteinander. 97

98 Ein Kunde will an einem Bankautomat Geld abheben. Benötigte Schnittstellen: 98

99 99

100 Mehrfach Geld abheben: 100

101 Nur Geldabheben, wenn erfolgreich im System eingeloggt: 101

102 Entweder Einzahlen oder Auszahlen je nach Kontostand: 102

103 UML Vertiefung 103

104 Das Anwendungsfalldiagramm (Use-Case- Diagram) dient zur Planung eines Softwaresystems (in der OOA-Phase), indem mögliche Akteure (Menschen, Benutzer eines Systems), Anwendungsfälle (Szenarien, wie Akteure das System nutzen) und die Beziehungen dazwischen identifiziert und abgebildet werden.

105 Es soll eine objektorientierte Software für eine Bankfiliale geplant werden. Dazu sind zunächst mögliche Anwendungsfälle, Akteure und Beziehungen zu überlegen.

106 Anwendungsfälle: Geld vom Konto abheben Geld vom Konto einzahlen Konto eröffnen Kredit beantragen Kreditwürdigkeit überprüfen Beratungsgespräche führen Anwendungsfall Akteure: Berater Kunde Akteur

107 Welcher Akteur steht mit welchen Anwendungsfällen in Beziehung? Bankfiliale Geld auf Konto einzahlen Geld vom Konto abheben Konto eröffnen Berater Beratungsgespräche führen Kunde Kredit beantragen? Kreditwürdigkeit überprüfen

108 Es kann sein, dass ein Anwendungsfall einen anderen Anwendungsfall zwingend mit einschließt. Beispiel: Wenn ein Kredit beantragt wird, muss zwingend die Kreditwürdigkeit des Kunden überprüft werden.

109 Bankfiliale Konto eröffnen Berater Beratungsgespräche führen Kunde Kredit beantragen <<include>> Kreditwürdigkeit überprüfen

110 Wenn ein Konto eröffnet wird kann es sein, dass auch ein Beratungsgespräch notwendig wird, wenn z.b. noch Unklarheiten vorhanden sind. Ebenso kann ein Beratungsgespräch für die Kredit vergabe notwendig sein, wenn z.b. die Kreditwürdigkeit Probleme bereitet. Die Anwendungsfälle Konto eröffnen und Kredit beantragen machen also nur unter einer bestimmten Bedingung ein Gespräch notwendig.

111 Bankfiliale Konto eröffnen <<extend>> condition: {Fragen offen} Beratungsgespräche führen Berater condition: {Problem bei Keditwürdigkeit} <<extend>> Kunde Kredit beantragen <<include>> Kreditwürdigkeit überprüfen

112 Ein Anwendungsfall kann durch mehrere Anwendungsfälle erweitert werden. Dann werden Extension Points definiert und der erweitere Anwendungsfall erhält eine Liste mit Extension points.

113 Bankfiliale Beratungsgespräche führen Besondere Konditionen aushandeln condition: {Problem bei Keditwürdigkeit} extension point: Problemkunde <<extend>> <<extend>> condition: {besonders Kreditwürdig} extension point: Premiumkunde Kredit beantragen Extension points: Problemkunde Premiumkunde

114 Oft ist es sinnvoll Anwendungsfälle weiter zu verfeinern (spezialisieren). So könnte es einen, dass es einen Anwendungsfall Geschäftskonto eröffnen gibt, der alles aus dem Anwendungsfall Konto eröffnen umfasst und zusätzlich weitere Aktionen erfordert. 114

115 Konto eröffnen Generalisierung Geschäftskonto eröffnen Spezialisierung

116 Bankfiliale 1 0..* Beratungsgespräche führen 0..* 1

117 Zusätzlich sollen Filialleiter als Akteur berücksichtigt werden. Diese dürfen alles, was ein Berater darf. Zusätzlich darf er eine Monatsabrechnung für die Filiale erstellen.

118 Bankfiliale Geld vom Konto abheben Geld auf Konto einzahlen Berater Konto eröffnen Beratungsgespräche führen Kredit beantragen Monatsabrechnung erstellen Filialleiter

119 Mit Hilfe eines Anwendungsfalldiagramms werden Anforderungen an das System analysiert und dargestellt (OOA). Basierend auf diesem Diagramm können nun weitere OOA/OOD-Planungsschritte folgen (Klassendiagramme, Sequenzdiagramme). 119

120 Objektorientierte Softwareentwicklung 120

121 Treiber JAVA- Programm JDBC-API Datenbank Installation des MySQL-Treibers: 1. Datei mysql-connector-java bin.jar in das Verzeichnis \lib\ext der Java-Laufzeitumgebung kopieren. 2. Unter Eclipse: Datei mysql-connector-java bin.jar importieren. 121

122 Kommunikation eines JAVA Programms mit einer MySQL-Datenbank: Verbindung aufbauen MySQL-Befehle generieren MySQL-Befehl(e) abschicken MySQL-Befehle ggf. auswerten Verbindung schließen 122

123 Es soll auf eine MySQL-Datenbank mit Namen verwaltung zugegriffen werden. In die Tabelle mitarbeiter sollen Daten eingefügt werden. Aus der Tabelle mitarbeiter sollen alle Datensätze ausgelesen und auf dem Bildschirm angezeigt werden. 123

124 124

125 125

126 126

127 Objektorientierte Softwareentwicklung 127

128 schrittweise und systematische Vorgehensweise in der Softwareentwicklung Softwareentwicklungsprozess ist in Phasen organisiert jede Phase hat definierte Start- und Endpunkte mit eindeutig definierten Ergebnissen. die Ergebnisse einer Phasen sind bindende Vorgaben für die nächst tiefere Phase ein ( Wasserfall ). Aufwärtslaufen in den Phasen möglich, sofern in der aktuellen Phase etwas schieflaufen sollte, um den Fehler auf der nächsthöheren Stufe beheben zu können. 128

129 129

130 Arbeitsauftrag, Lastenheft Was wird benötigt? Was soll programmiert werden? Umsetzung in eine Programmiersprache (z.b. JAVA) Klassen, Attribute, Methoden, Schnittstellen, Beziehungen, UML Testfälle überlegen, Testen der Umsetzung Alltagsbetrieb der Software, neuer Prozess bei Fehlern oder Erweiterungen notwendig. 130

131 Autor: Christian Frye Version: Datum: Web: Mail: 131

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Programmieren in Java

Programmieren 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

Mehr

Algorithmen und Datenstrukturen 06

Algorithmen 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

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. 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

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

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

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

2. Vererbung und Kapselung

2. Vererbung und Kapselung 2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

UML - Tutorial. Hubert Baumgartner. www.inso.tuwien.ac.at

UML - Tutorial. Hubert Baumgartner. www.inso.tuwien.ac.at UML Tutorial UML - Tutorial SS 06 Hubert Baumgartner www.inso.tuwien.ac.at INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Begriffe 1 (Wiederholung)

Begriffe 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.

Mehr

UML -Klassendiagramme

UML -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

Mehr

Software Engineering Klassendiagramme Einführung

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

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Objektorientierte Analyse (OOA) Strukturmodellierung

Objektorientierte Analyse (OOA) Strukturmodellierung Strukturmodellierung Seite 1 Strukturmodellierung Seite 2 Anwendung im Projekt Strukturmodellierung Voraussetzung: Use Case Diagramm liefert die funktionelle Gliederung mit Angabe der Ein- und Ausgaben

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 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,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik Objektorientierung Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik

Objektorientierung. Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik Programmierstarthilfe WS 2010/11 Fakultät für Ingenieurwissenschaften und Informatik Organisatorisches Im Web unter http://www.uni-ulm.de/psh Vorwissen Du kannst bereits Klassen als Typen mit statischen

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. 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

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Objektorientierung Was ist Objektorientierung Es einige Grundprinzipien, die (fast) allen Definitionen des Begriffs Objektorientierung

Mehr

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Klassen 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

Mehr

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs 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

Mehr

Die Klasse java.lang.object. Thorsten Treffer

Die Klasse java.lang.object. Thorsten Treffer Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:

Mehr

3. Konzepte der objektorientierten Programmierung

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

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)

Mehr

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung 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,

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.

Der Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw. Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Einführung in die Programmierung

Einfü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

Mehr

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

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

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 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

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut 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

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-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

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck. Programmierkurs Java Vererbung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Ähnlichkeiten zwischen Klassen? Beispiel: Klassen Auto

Mehr

Teil II: OOP und JAVA (Vorlesung 9)

Teil II: OOP und JAVA (Vorlesung 9) Teil II: OOP und JAVA (Vorlesung 9) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 14.06.06 1 Teil

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 12: Einführung in UML und Java API Dokumentation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in UML Sequenzdiagramm Klassendiagramm

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Softwareentwicklung OOD Videothek

Softwareentwicklung OOD Videothek Softwareentwicklung OOD Seite 1 von 5 Softwareentwicklung OOD Videothek Ein mögliches Vorgehen bei OOD soll im Rahmen einer Softwareentwicklung an dem bereits bei der OOA verwendeten Beispiel einer Videothek

Mehr

Vererbung. Oberklassen und Unterklassen

Vererbung. Oberklassen und Unterklassen Vererbung Oberklassen und Unterklassen Vererbung ist ein zentrale Bestandteil der Objektorientierung. Man beschreibt damit die Möglichkeit, Eigenschaften und Methoden vorhandener Klassen auf andere (neue)

Mehr

Objektorientiertes Design

Objektorientiertes Design Objektorientiertes Design Beispiel-Anforderungen: Simple International (SIB) Interaktion mit der SIB: Ablauf von Interaktionen: UML Beispiel für OOD: Vorgehen Ergebnis Beispiel-Anforderungen: Simple International

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Christian-Albrechts-Universität zu Kiel CAU 8-1 Objektorientiertes Programmieren Die Programme, die bisher in diesem Kurs verwendet wurden, sind alle klein und überschaubar

Mehr

C++ - Objektorientierte Programmierung Vererbung

C++ - Objektorientierte Programmierung Vererbung C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. 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:

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

Mehr

Die Unified Modeling Language (UML)

Die Unified Modeling Language (UML) Die Unified Modeling Language (UML) Entwickelt seit Mitte der 1990er Vereinigt zahlreiche Ansätze der objektorientierten Modellierung Umfaßt verschiedene Spracheinheiten/Diagrammtypen Struktur Klassiagramme

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

Prinzipien der objektorientierten Programmierung (OOP)

Prinzipien der objektorientierten Programmierung (OOP) Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 03.03.2011 Prüfungsdauer:

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Überblick. Überblick zum weiteren Inhalt

Ü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

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie 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

Einführung in die Programmierung mit Java

Einfü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

Mehr

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen 5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 11 Besprechung: 15. 19.01.018 (KW 3) Vorbereitende

Mehr

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.

Mehr

Arbeitsblatt zu Methoden

Arbeitsblatt zu Methoden Arbeitsblatt zu Methoden In den vorhergehenden Programmen haben wir bereits jede Menge Methoden benutzt: 1. kara.move(), kara.turnright(), kara.putleaf() Dies sind alles Methoden, die etwas ausführen,

Mehr

Modellierungstipps für die Anwendungsfallmodellierung

Modellierungstipps für die Anwendungsfallmodellierung Modellierungstipps für die Anwendungsfallmodellierung Identifiziere nur relativ grobe Abläufe als Anwendungsfälle! Anwendungsfälle werden nicht in weitere Anwendungsfälle zerlegt, höchstens unter Verwendung

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei

Durch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der

Mehr

Klassen als Datenstrukturen

Klassen als Datenstrukturen Einstieg in die Informatik mit Java, Vorlesung vom 27.11.07 Übersicht 1 Klassen als Datenstruktur 2 Vereinbarung von Klassen 3 Erzeugen von Objekten - Instanzen einer Klasse 4 Zugriff auf Attribute 5 Initialisierung

Mehr

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

Mehr

Objektorientierte Programmierung

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

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 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

Mehr

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

OOP 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

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 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.

Mehr