Objektorientierung. Teil 1: Einführung in die Objektorientierung (aus der Java-Perspektive)

Größe: px
Ab Seite anzeigen:

Download "Objektorientierung. Teil 1: Einführung in die Objektorientierung (aus der Java-Perspektive)"

Transkript

1 BlueJ und Java: Grundkonzepte objektorientierten Programmierens Teil : Einführung in die Objektorientierung (aus der Java-Perspektive) Dr. M. Schillo, Christoph Uhrhan PL Speyer Thomas Karp, C. Uhrhan Schwerpunkte Musik und Informatik Programm.Tag: OO-Modellierung mit UML Begriffe - Bauplan, Instanz, Eigenschaft, Fähigkeit - Klasse, Objekt, Variable, Methode Diagrammformen für den Unterricht - Anwendungsfalldiagramm, Liste der natürlichen Objekte, Klassendiagramm, Sequenzdiagramm, Aktivitätsdiagramm - Beispiel: Druckerwarteschlange Ausprobieren am Beispiel (Rollenspiel/GA) - Bankautomat Komplexe Projekte ohne Kodierung Objektorientierung 3

2 Wie verhält sich Objektorientierung zur prozeduralen Programmierung? Einstiegsbeispiel Programmieren im Kleinen bleibt erhalten Prozedurorientierte Modellierung - Struktogramme etc. Objektorientierte Modellierung - UML Eine Ampel kommt selten allein 5 6 Codebeispiel: Ampelklasse Idee der Objektorientierung public class Ampel{ int zustand; public void schalteweiter(){ zustand = ( zustand + ) % 4; public void zeichneampel(){! Ampel ampel = new Ampel(); Ampel ampel2 = new Ampel(); ampel.schalteweiter(); ampel2.schalteweiter(); Vorstrukturierung komplexer Systeme anhand natürlicher Objekte Jedes Objekt hat Fähigkeiten und Eigenschaften Verteilung von Lösungskompetenzen, Zuständigkeiten und Geheimnissen Planung des Kontrollflusses ( Meta-Algorithmus ) 7 8

3 Kern der Objektorientierung Objektorientierung: Phasenmodell Konzept Effekt Hintergrund Kapselung Reduktion von Nebeneffekten Viele Entwickler OO-Analyse OO-Entwurf OO-Entwicklung Klassen Reduzierung von Codelänge Effizienz OO-Modellierung OO-Programmierung Modellierung natürlicher Objekte Komplexitätsreduktion Der Code ist die Dokumentation 9 0 Beispiel: Digitale Uhr public class Uhr{ int stunden, minuten, sekunden; Aufbau - Stunden, Minuten, Sekunden, Takt, Wie implementiert man zwei Uhren (Weltuhr)? - den Code kopieren und noch einmal einfügen - Variablen umbenennen - Bei Änderungen alles doppelt drei Uhren, vier Uhren? public Uhr( int h, int m, int s ){ stunden = h; minuten = m; sekunden = s; public void zaehleweiter(){ sekunden = sekunden + ; if ( sekunden == 60 ){ sekunden = 0; minuten++; if ( minuten == 60 ){ minuten = 0; stunden++; Uhr speyer = new Uhr( 4, 30, 45); speyer.zaehleweiter(); Uhr london = new Uhr( 3, 30, 45); london.zaehleweiter(); public void zeigeuhrzeitan(){ System.out.println( stunden + : + minuten + : +sekunden ); 2

4 Begriffe der Objektorientierung Merkmale von Objekten Begriff Beispiel Erläuterung Objekt speyer Exemplar oder Instanz Klasse Uhr Bauplan Methode Objektvariable Vererbung zaehleweiter() stunden AnalogUhr Fähigkeit, Prozedur, Methode Eigenschaft, Variable, Attribut Anreicherung von Eigenschaften Objekte haben einen Typ - der Name der Klasse, dessen Instanz sie sind. einen Namen einen Zustand - Die Gesamtheit aller Variablenwerte. eine Identität - dazu später mehr! 3 4 Bezeichnerkonventionen Vorteile der Implementierung mit Objektorientierung. Sinntragende Bezeichner 2. Konkatenation Klasse: Uhr - Substantiv, Großschreibung Variable: meineuhr = new Uhr() - Substantiv, Kleinschreibung Methode: zaehleweiter() - Verb, Kleinschreibung Beispiel: meineuhr.zaehleweiter() Bessere Kapselung von: Daten => Geheimhaltung Zuständigkeiten => Interaktion statt Manipuliation => Klare Schnittstellen Komplexität => Bessere Modularisierung Arbeitsersparnis: Objekte => Wiederverwendung von Code Klassenbibliotheken => Wiederverwendung von Funktionalität 5 6

5 Warum Java für OOI? Pro - Plattformübergreifend - Einbindung ins Web -> Applets - Unterstützung: Bibliotheken, IDEs, Literatur, Foren - universellere Konzepte, kompakter JavaScript!?! Kontra - Overhead bei Ein-/Ausgabe - Kein Einstieg ohne OO?bsh? Fragen? 7 UML - die Unified Modelling Language Die wichtigsten Diagrammformen der UML für den Unterrichtseinsatz am Beispiel einer Druckerwarteschlange Einstieg Worum geht es?. Beispiele für UML im Unterricht. Denkwerkzeuge für die Modellierung. Allgemeinbildende Aspekte Worum geht es nicht?. Vermittlung des UML-Standards auf Niveau von Softwareentwicklern Schwerpunkte Musik und Informatik 20

6 Der Fahrplan Anwendungsfall-Diagramm: Druckerwarteschlange. Druckerwarteschlange (vormittag) 2. Bankautomat (nachmittag) Systemgrenze Druckauftrag erzeugen 2x4 - Anwendungsfalldiagramm Anwendungsfälle - Klassendiagramm - Aktivitätsdiagramme - Sequenzdiagramme Anwender Rolle Warteschlangeninhalt ansehen Druckauftrag drucken 2 22 Textuelle Beschreibung der Anwendungsfälle Anwendungsfall-Diagramm: Druckerwarteschlange Man will einen Druckauftrag erzeugen und (nach Priorität oder Reihenfolge des Einreichens) einreihen können Die Warteschlange muss den nächsten Druckauftrag ausgeben können Die Nutzer wollen die Warteschlange einsehen können Evtl. muss ein Druckauftrag vorgezogen werden können 23 Systemgrenze Rolle Anwender Druckauftrag erzeugen <<erweitert>> Druckauftrag mit Priorität erzeugen Warteschlange anhalten Anwendungsfälle Warteschlangeninhalt ansehen Druckauftrag einsortieren Priorität ändern Druckauftrag entfernen Druckauftrag drucken Informationen zu Druckauftrag ansehen 24

7 Anwendungsfall-Diagramm: Druckerwarteschlange Rollenspiel zu: Einsortieren eines Auftrages Systemgrenze Rolle Anwender Druckauftrag erzeugen <<erweitert>> Druckauftrag mit Priorität erzeugen Warteschlange anhalten Anwendungsfälle Warteschlangeninhalt ansehen Druckauftrag einsortieren Priorität ändern Druckauftrag entfernen Druckauftrag drucken Informationen zu Druckauftrag ansehen 26 Liste der natürlichen Objekte Nutzer Warteschlange Druckauftrag Papier Drucker Priorität Papierstau Dokumentname Druckertreiber Extern Elementar + Warteschlangenelement Vorbereitung des Klassendiagramms! 27 Klassendiagramm für Warteschlange und Druckauftrag druckername: String kopf: DruckAuftrag DruckerWarteschlange (c) DruckerWarteschlange(dn: String) druckenaechstenauftrag(): DruckAuftrag erzeugedruckauftrag(da: DruckAuftrag): void giblaengeaus(): int gibwarteschlangeaus(): void Warteschlange 0 Kopf 2 verwaltet DruckAuftrag dokumentname: String nachfolger: DruckAuftrag prio: int (c) DruckAuftrag(dn: String, p: int) druckedokumentaus(): void fuegedruckauftragein(da: DruckAuftrag) gibdokumentnameaus(): void gibnachfolger(): DruckAuftrag setzenachfolger(da: Druckauftrag): void gibprio(): int setzeprio(p: int): void gibrestwsaus(): void druckedokumentaus(): void gibrestlaengeaus(lb: int): int Nachfolger

8 Klassendiagramm für Warteschlange und Druckauftrag druckername: String kopf: DruckAuftrag DruckerWarteschlange (c) DruckerWarteschlange(dn: String) druckenaechstenauftrag(): DruckAuftrag erzeugedruckauftrag(da: DruckAuftrag): void giblaengeaus(): int gibwarteschlangeaus(): void verwaltet 0.. DruckAuftrag dokumentname: String nachfolger: DruckAuftrag prio: int (c) DruckAuftrag(dn: String, p: int) druckedokumentaus(): void fuegedruckauftragein(da: DruckAuftrag) gibdokumentnameaus(): void gibnachfolger(): DruckAuftrag setzenachfolger(da: Druckauftrag): void gibprio(): int setzeprio(p: int): void gibrestwsaus(): void druckedokumentaus(): void gibrestlaengeaus(lb: int): int Nachfolger 0.. neuerauftrag Aktivitätsdiagramm: fügeauftragein() fügeauftragein(neuerauftrag) existiert nachfolger? nein ja pneu=neuerauftrag. gibprioritaetzurueck() nachfolger = neuerauftrag nachfolger.fügeauftragein(neuerauftrag) nein pneu < nachfolger.gibprioritaetzurueck() neuerauftrag.nachfolger = nachfolger ja Warteschlange nachfolger = neuerauftrag Kopf Sequenzdiagramm: fügeauftragein() w:warteschlange kopf:druckauftrag d:druckauftrag d2:druckauftrag fuegeauftragein() gibprioritaetzurueck() id fuegeauftragein() gibprioritaetzurueck() id fuegeauftragein() Code: fügeauftragein() public class Druckauftrag{ public void fuegeauftragein( Druckauftrag d ){ if ( nachfolger == null ){ setzenachfolger( d ); else { if ( d.gibprioritaetzurueck() < nachfolger.gibprioritaetzurueck()){ d.setzenachfolger( nachfolger ); setzenachfolger( d ); else { nachfolger.fuegeauftragein( d ); 3 32

9 Aktivitätsdiagramm: gibwarteschlangeaus() gibwarteschlangeaus() Übung gibwarteschlangeaus() existiert nachfolger? ja nein nachfolger.gibdokukmentnameaus() nachfolger.gibrestderwsaus() 34 Sequenzdiagramm: gibwarteschlangeaus() Code: gibwarteschlangeaus() w:warteschlange kopf:druckauftrag d:druckauftrag d2:druckauftrag gibdokumentinfoaus() gibrestderwsaus() gibdokumentinfoaus() gibrestderwsaus() public class Warteschlange{ public void gibwarteschlangeaus(){ kopf.gibnachfolgerzurueck().gibauftraegeaus(); public class Druckauftrag{ public void gibauftraegeaus(){ gibdokumentaus(); gibrestderwsaus() 35 if ( nachfolger!= null ) nachfolger.gibauftraegeaus(); public void gibdokumentaus(){ System.out.println( id + " p: "+ prioritaet + " " + dokumentname ); 36

10 Variationen +setze Priorität( int id ) +aendereanzahl( int anzahl ) Drucken zu einem bestimmten Zeitpunkt Auswahl s/w oder Farbe Verschieben von einer Warteschlange in eine andere Fragen? 37 UML: Überblick UML (2) Die wichtigsten Diagrammformen im Überblick Phase Analyse Entwurf: Struktur Entwurf: Verhalten Diagramm Anwendungsfall Klassendiagramm Sequenzdiagramm Aktivitätsdiagramm Schwerpunkte Musik und Informatik 40

11 Anwendungsfalldiagramm Systemgrenze Liste der natürlichen Objekte, nicht in UML! Extern Rolle Anwendungsfall Anwendungsfall Anwendungsfall Rolle 2 + Elementar Vorbereitung des Klassendiagramms! 4 42 Klassendiagramm Aktivitätsdiagramm Klassenname Klassenname2 Name der Aktivität {-,+,#feld: Typ {-,+,#methode() Beziehung 0....* {-,+,#feld: Typ {-,+,#methode() Kontrollfluss: Start Arbeitsschritt Arbeitsschritt Sichtbarkeit: - private +public #protected Kardinalität: :! entfällt"" n ""! (unbekannt, aber beschränkt) 0..! (3..0"""..n)..*! ( oder mehr) *! (0 oder mehr) Parameter Entscheidung ja Arbeitsschritt ja nein Ergebniswert 43 44

12 Bearbeitungszeit Sequenzdiagramm instanz:klasse instanz2:klasse2 instanz3:klasse3 instanz4:klasse4 internemethode() externemethode() externemethode() Vorschlag: Vorgehensweise für den Unterricht F-Entw. Klassendiagramm Partner- Arbeit Natürliche Objekte Binnendiff.? Aktivitätsdiagramm Rückgabewert Rückgabewert Lebenslinie x Ende der Lebenslinie 45 HA: Text? Gruppenarbeit Anwendungsfalldiagramm Sequenzdiagramm 46 Strukturelle Probleme des Unterrichtseinsatzes der OO-Modellierung Modellierung setzt Kodierungserfahrung voraus - manche Software-Objekte sind nicht natürlich sondern technisch bedingt; - viele natürliche Objekte sind nicht relevant Vorteil der Objektorientierung: bei großen Projekten, nicht bei kleinen Objektorientierung - setzt imperative Programmierung voraus, oder - objects first: besitzt nicht genug Fleisch. Fragen? 47 Schwerpunkte Musik und Informatik

13 Sequenzdiagramm: löscheauftrag(id) () w:warteschlange kopf:druckauftrag d:druckauftrag d2:druckauftrag Übung löscheauftrag(id) gibidzurueck() id löscheauftrag(id) gibidzurueck() Auftrag löschen und Priorität ändern id x 50 Sequenzdiagramm: entferneauftrag(id) Aktivitätsdiagramm: entferneauftrag(id) w:warteschlange kopf:druckauftrag d:druckauftrag d2:druckauftrag entferneauftrag(id) entferneauftrag(id) gibidzurueck() id nimm nachfolger entferneauftrag(id) gibidzurueck() id id nachfolger.gibidzurueck() = id? nein entfernterauftrag ja entfernterauftrag ja = nachfolger entfernterauftrag entfernterauftrag nachfolger = entfernterauftrag.nachfolger x 5 52

14 Code: entferneauftrag(id) Allgemeinbildende Aspekte public class Warteschlange{ public void loescheauftrag( int id ){ kopf.entferneauftrag( id ); public class Druckauftrag{ public Druckauftrag entferneauftrag( int id ){ if ( nachfolger.gibidzurueck() == id ){ Druckauftrag auftrag = nachfolger; nachfolger = nachfolger.gibnachfolgerzurueck(); return auftrag; return nachfolger.entferneauftrag( id ); Beschreibung komplexer Systeme - Beschreibungswerkzeuge (Interaktion, Ablauf) - nicht reduzieren, sondern annehmen der Komplexität - Textverarbeitung, SchO OOM + Textverarbeitung OOM + Politische Strukturen 55 56

15 Allgemeinbildende Aspekte Zusammenfassung Beschreibung komplexer Systeme - Beschreibungswerkzeuge (Interaktion, Ablauf) - nicht reduzieren, sondern annehmen der Komplexität - Textverarbeitung, SchO Perspektivenwechsel - Nicht Kausalbeziehung - vgl. Hermeneutischer Zirkel UML - Grafische Beschreibungssprache Anwendungsfalldiagramm Klassendiagramm, Aktivitätsdiagramm Sequenzdiagramm - Perspektivenwechsel, Überblick Methodische Vorschläge - Auswahl an Diagrammen, Natürliche Objekte, Projektablauf Pause Unterrichtsmaterial Bankautomat und UML Dr. Michael Schillo Schwerpunkte Musik und Informatik

16 Aufgabe Fertigen Sie ein Klassendiagramm an Fertigen Sie Aktivitäts- und Sequenzdiagramme für folgende Abläufe an: - Ablaufdatum überprüfen - PIN prüfen - Saldo ausgeben - 50# abheben - beliebigen Betrag abheben Dabei sollen die Aktivitätsdiagramme zentrale Methoden abbilden, das Sequenzdiagramm beginnt beim Bankautomaten 6 Material zum Bankautomaten Schwerpunkte Musik und Informatik Die Konto- und Kartendaten MuLö Name ktonummer ktostand BLZ konto ,00! konto ,00! konto ,00! Name ktonummer pin BLZ krtnummer karte karte karte

17 Anwendungsfall-Diagramm: Bankautomat Liste der natürlichen Objekte System Benutzer Geldausgabe Kontostand abfragen PIN Prüfen Konto (Betrag) Karte Geld Kontonr BLZ PIN Automat Tageslimit Geld abheben Sprache Bargeldbestand Ein-/Ausgabe Kontostand + Kontoverwaltung Benutzer Die Klasse Karte Queltext der Klasse Karte pin: int kartennr: int kontonr: int blz: int Karte (c) Karte(p: int, krtnr: int, ktonr: int, b: int) gibpin(): int gibkartennr(): int gibktonr(): int gibblz(): int public class Karte { 2 3 int pin ; 4 int kartennr ; 5 int kontonr ; 6 int blz ; 7 8 Karte(int krtnr, int ktonr, int b, int p) { 9 pin = p; 0 kartennr = k r t n r ; kontonr = ktonr ; 2 b l z = b ; int gibpin () { 6 return pin ; int gibkartennr () { 20 return kartennr ; int gibkontonr () { 24 return kontonr ; int gibblz () { 28 return blz ;

18 Die Klasse Konto Quellcode der Klasse Konto kontonr: int blz: int kontostand: float Konto (c) Konto(ktonr: int, blz: int, ktostd: float) gibktonr(): int gibblz(): int gibkontostand(): float hebeab(betrag: float): boolean public class Konto { 2 int kontonr ; 3 int blz ; 4 double kontostand ; 5 6 Konto(int ktonr, int b, double d) { 7 kontonr = ktonr ; 8 blz = b; 9 kontostand = d; 0 2 int gibkontonr () { 3 return kontonr ; int gibblz () { 7 return blz ; double gibkontostand () { 2 return kontostand ; boolean hebeab(double betrag) { 25 if (kontostand > betrag) { 26 kontostand = kontostand betrag ; 27 return true ; 28 else { 29 return false ; Die Klasse KontoVerwaltung Quelltext der Klassse KontoVerwaltung Kontoverwaltung konto: Konto konto2: Konto konto3: Konto (c) Kontoverwaltung() findekonto(ktonr: int): Konto public class KontoVerwaltung { 2 3 Konto konto ; 4 Konto konto2 ; 5 Konto konto3 ; 6 7 KontoVerwaltung() { 8 konto = new Konto (747, , 200.0) ; 9 konto2 = new Konto (256, , ) ; 0 konto3= new Konto (85, , 275.0) ; 2 3 Konto findekonto ( int ktonr) { 4 if (konto.gibkontonr() == ktonr) { 5 return konto ; 6 else if (konto2.gibkontonr() == ktonr) { 7 return konto2 ; 8 else if (konto3.gibkontonr() == ktonr) { 9 return konto3 ; 20 else { 2 return null ;

19 Die Klasse BankAutomat Quellcode der Klasse BankAutomat () Bankautomat ktoverwaltung: Kontoverwaltung aktuellekarte: Karte aktuelleskonto: Konto bargeldbestand: float (c) Bankautomat() pruefepin(krt: Karte, pin: int): boolean gibktostand(): float hebeab(betrag: float): boolean beendetranskation(): void Quellcode der Klasse BankAutomat (II) Quellcode der Klasse BankAutomat (II) 75 76

20 Klassendiagramm Sequenzdiagramm pin: int kartennr: int kontonr: int blz: int Karte (c) Karte(p: int, krtnr: int, ktonr: int, b: int) gibpin(): int gibkartennr(): int gibktonr(): int gibblz(): int kontonr: int blz: int kontostand: float Konto (c) Konto(ktonr: int, blz: int, ktostd: float) gibktonr(): int gibblz(): int gibkontostand(): float hebeab(betrag: float): boolean 3 Sequenzdiagramm: BankAutomat.pruefePin(karte2, 2222) ba: BankAutomat karte2: Karte pruefepin(karte2, 2222) gibpin() true aktuellekarte: Karte gibkontonr() 256 ktoverwaltung: KontoVerwaltung konto: Konto konto2: Konto findekonto(256) gibkontonr() Bankautomat ktoverwaltung: Kontoverwaltung aktuellekarte: Karte aktuelleskonto: Konto bargeldbestand: float (c) Bankautomat() pruefepin(krt: Karte, pin: int): boolean gibktostand(): float hebeab(betrag: float): boolean beendetranskation(): void Kontoverwaltung konto: Konto konto2: Konto konto3: Konto (c) Kontoverwaltung() findekonto(ktonr: int): Konto true konto2 747 gibkontonr() Aktivitätsdiagramm BankAutomat.pruefePin() krt: Karte pin: int krt.pin == pin ergebnis = false aktuellekarte = krt finde Konto zur aktuellen Karte beendetransaktion() beendetransaktion() ergebnis aktuelleskonto!= null ergebnis = false ergebnis = true 79

Objektorientierung. Teil 1: Einführung in die Objektorientierung (aus der Java-Perspektive) Grundkonzepte objekteorientierten Programmierens mit Java

Objektorientierung. Teil 1: Einführung in die Objektorientierung (aus der Java-Perspektive) Grundkonzepte objekteorientierten Programmierens mit Java Grundkonzepte objekteorientierten Programmierens mit Java Teil 1: Einführung in die Objektorientierung (aus der Java-Perspektive) Dr. Dr., C. Uhrhan Schwerpunkte Musik und Informatik Programm 1.Tag: OO-Modellierung

Mehr

Objektorientierung. Teil II: Einführung in die Objektorientierte Modellierung. BlueJ und Java: Grundkonzepte objektorientierten Programmierens

Objektorientierung. Teil II: Einführung in die Objektorientierte Modellierung. BlueJ und Java: Grundkonzepte objektorientierten Programmierens BlueJ und Java: Grundkonzepte objektorientierten Programmierens 7.5.2012-9.5.2012 PL Speyer Thomas Karp, Christoph Uhrhan Teil II: Einführung in die Objektorientierte Modellierung Christoph Uhrhan Schwerpunkte

Mehr

Grundkonzepte objektorientierten Programmierens 2 (mit Java oder ohne) G. Noll, H. Paulus, M. Schillo, C. Uhrhan

Grundkonzepte objektorientierten Programmierens 2 (mit Java oder ohne) G. Noll, H. Paulus, M. Schillo, C. Uhrhan Grundkonzepte objektorientierten Programmierens 2 (mit Java oder ohne) G. Noll, H. Paulus, M. Schillo, C. Uhrhan Organisatorisches Tag 1 Wdhl.: UML, Warteschlange Kürzeste Wege Modellierung statt Implementierung

Mehr

Grundkonzepte objektorientierten Programmierens 2 (mit Java oder ohne)

Grundkonzepte objektorientierten Programmierens 2 (mit Java oder ohne) Grundkonzepte objektorientierten Programmierens 2 (mit Java oder ohne) G. Noll, H. Paulus, M. Schillo, C. Uhrhan Organisatorisches Tag 1 Wdhl.: UML, Warteschlange Kürzeste Wege Modellierung statt Implementierung

Mehr

Objektorientierte Programmierung mit Java

Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Dr. Michael Schillo Christoph Uhrhan Gymnasium Hermeskeil 1. Einstieg: Java Ursprünge Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung

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

Realität zu modellieren eine

Realität zu modellieren eine Objektorientierung Objektorientierung ist zunächst einmal eine Möglichkeit, Realität zu modellieren dem menschlichen Denken ähnliche Art, an Probleme heran zu gehen Objektorientierung ist eine Vorgehensweise

Mehr

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE Nutzung des AMCS (Auditorium Mobile Classroom Service) https://amcs.website Einloggen/Registrieren mit beliebigem Pseudonym Passwort Kurs Softwaretechnologie PIN:

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595 Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified

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

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

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum

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

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen.

3.2 Objekte und Klassen. Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen. 3.2 Objekte und Klassen Wir werden uns in diesem Kapitel näher mit Objekten und Klassen in Java beschäftigen. Praktische Informatik I Wolfgang Effelsberg 3. Die Programmiersprache Java 3.2-1 Objektorientierte

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

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

Mehr

Javakurs für Anfänger

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

Mehr

NACHRICHTENTECHNISCHER SYSTEME

NACHRICHTENTECHNISCHER SYSTEME Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)

Mehr

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Klassen, Objekte, Alternativen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Grundlegende Definitionen - Objekt Ein Objekt ist allgemein ein Gegenstand

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

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

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

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

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Implementieren mit Java - Schülerband Das komplette Material finden Sie hier: School-Scout.de School-Scout Der persönliche Schulservice

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren 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

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

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003

Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003 Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler 1. Jänner 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

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

7. Übung Informatik II - Objektorientierte Programmierung

7. Übung Informatik II - Objektorientierte Programmierung 7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer

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

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

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

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.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)

Mehr

Vorlesung Programmieren

Vorlesung 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)

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

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

16. Dezember 2004 Dr. M. Schneider, P. Ziewer Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik

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

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

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

Objektorientierung. Objekte

Objektorientierung. Objekte Eine Einführung G. Futschek Objekte Objekte Fragen: Wie unterscheiden sich Objekte? Wie sind Objekte einander ähnlich? Was können Objekte? Wie stehen Objekte zueinander in Beziehung? Objekte Im täglichen

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde 2. angebot Nein Prozedural Schleife über alle Projekte Noch was zu tun? Manager informieren... Ja Daten

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

II.4.2 Abstrakte Klassen und Interfaces - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

Spezifikation, Klassen, Schnittstellen in Java. 2.4 Datenabstraktion, Objektorientierung, Java

Spezifikation, Klassen, Schnittstellen in Java. 2.4 Datenabstraktion, Objektorientierung, Java Spezifikation, Klassen, Schnittstellen in Java 2.4 Datenabstraktion, Objektorientierung, Java 2.4.1 Grundlegende Begriffe der Objektorientierung (s. auch Alp2) Klassen sind wie Module eine Einheit der

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr

Objektorientiertes Programmieren (Java)

Objektorientiertes Programmieren (Java) Grundlagen Objektorientiertes Programmieren (Java) Java folgt gewissen Rechtschreibregeln die Syntax. Diese besagt, dass hinter jeden Befehl ein Semikolon( ; ) stehen muss, damit der Computer weiß, dass

Mehr

Abschnitt 15: Unified Modeling Language (UML)

Abschnitt 15: Unified Modeling Language (UML) Abschnitt 15: Unified Modeling Language (UML) 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

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

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

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Aufgaben. Objektorientierte Programmierung

Aufgaben. Objektorientierte Programmierung Aufgaben Objektorientierte Programmierung 1. Baue in die Klasse Wombat eine Methode turnright() ein, damit sich der Wombat auch im Uhrzeigersinn drehen kann 2. Notiere alle Befehle (Stift und Blatt Papier

Mehr

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java 1. Klassen und Objekte Zunächst wollen wir mit Hilfe eines Miniprogramms die Entwicklungsumgebung BlueJkennen lernen. Die Installation

Mehr

Übung Einführung in die Softwaretechnik

Übung Einführung in die Softwaretechnik Lehrstuhl für Informatik 3 RWTH Aachen Übung Einführung in die Softwaretechnik Lösungshinweise zum Übungsblatt 12 Aufgabe 28 Sichtbarkeits-Symbol UML Java + public # protected private (default) Sichtbar

Mehr

Tag 7 Repetitorium Informatik (Java)

Tag 7 Repetitorium Informatik (Java) Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

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

Programmierparadigmen

Programmierparadigmen Programmierparadigmen DEKLARATIV Funktional Logisch IMPERATIV Prozedural Objektorientiert Einsatz der Programmierparadigmen Systemkomplexität von der Komplexität der Algorithmen dominiert deklarativ oder

Mehr

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was

Mehr

2.4 Datenabstraktion und Objektorientierung Datenabstraktion in Programmiersprachen

2.4 Datenabstraktion und Objektorientierung Datenabstraktion in Programmiersprachen 2.4 Datenabstraktion und Objektorientierung 2.4.1 Datenabstraktion in Programmiersprachen Datenabstraktion: zur Beherrschung von Komplexität unerlässlich. In jeder Programmiersprache kann man gemäß den

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

Konzept und Umsetzung

Konzept und Umsetzung Konzept und Umsetzung oo-design- Sprache Konzepte Instanz UML eine Umsetzung der Konzepte oo-programmier- Sprache Konzepte Instanz Java eine Umsetzung der Konzepte FH AACHEN UNIVERSITY OF APPLIED SCIENCES

Mehr

Einführung in die Programmierung mit BlueJ

Einführung in die Programmierung mit BlueJ Einführung in die Programmierung mit BlueJ Thema 4 Steuerstrukturen - Verzweigungen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Daten speichern: Datenfelder Instanzvariablen,

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

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

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 5. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Objektorientierter Entwurf nach Folie 1 Folie 2 Objektorientierter Entwurf

Mehr

Abschnitt 6: Klassen, Objekte und Methoden in Java

Abschnitt 6: Klassen, Objekte und Methoden in Java Abschnitt 6: Klassen, Objekte und Methoden in Java 6. Klassen, Objekte und Methoden in Java 6.1 Klassen 6.2 Objekte 6.3 Methoden 6.4 Zusammenfassung 6 Klassen, Objekte und Methoden in Java Informatik 2

Mehr

5.5.8 Öffentliche und private Eigenschaften

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

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

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

Mehr

JAVA - Methoden - Rekursion

JAVA - Methoden - Rekursion Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen

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

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

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

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten

Mehr

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing Christoph Kecher, Alexander Salvanos UML 2.5 Das umfassende Handbuch Rheinwerk Computing Inhalt Vorwort 13 1 Einführung 17 1.1 Weshalb muss Software modelliert werden? 17 1.2 Die Phasen bei der Softwareentwicklung

Mehr

3.3. Rekursive Datentypen

3.3. Rekursive Datentypen 3.3. Rekursive Datentypen class Element int info; Element naechster;... Element element = new Element(); element.info = 1; element.naechster = new Element(); element.naechster.info = 2; Erläuterung: Objekte

Mehr

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 - ! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Einführung in das objektorientierte Modellieren und Implementieren mit Java Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr