Java. Prof. Dr. Stefan Enderle NTA Isny

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

Software Engineering. Prof. Dr. Stefan Enderle NTA Isny

Begriffe 1 (Wiederholung)

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

Algorithmen und Datenstrukturen 06

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

Einführung in die Programmiersprache Java II

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

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

Einstieg in die Informatik mit Java

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

UML -Klassendiagramme

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

Objektorientierte Programmierung III

7. Objektorientierung. Informatik II für Verkehrsingenieure

Programmierung Nachklausurtutorium

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

2. Vererbung und Kapselung

6. Globalübung (zu Übungsblatt 8)

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Einstieg in die Informatik mit Java

Geoinformation I Datenmodellierung

Objektorientierte Analyse (OOA) Strukturmodellierung

Gliederung der Folien

Java: Implemen'erung von Assozia'onen.

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

Algorithmen und Datenstrukturen 07

Klassen als Datenstrukturen

Java für Bauingenieure

Abstrakte Klassen, Interfaces

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

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

Objektorientierte Modellierung (1)

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

1 Klassen und Objekte

Objektorientierung. Objekte

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

Objektorientierte Programmierung OOP

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Am Anfang werden die Attribute deklariert public class Kreis {

Java: Vererbung. Teil 1: Grundlagen, UML.

Java Vererbung. Inhalt

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

Algorithmen und Datenstrukturen 07

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

C++ - Objektorientierte Programmierung Vererbung

Objektorientierte Programmierung

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

Grundelemente objektorientierter Sprachen (1)

SE Besprechung. Übung 1 Programmverständnis, Dokumentation

10. Programmierungs-Phase: Objektorientierung Software Engineering

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Objektorientierte Programmierung Studiengang Medieninformatik

Programmieren I. Dr. Klaus Höppner. Hochschule Darmstadt Wintersemester 2009/ / 22

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Grundkurs C++ IDE Klassenhierarchien

Propädeutikum Programmierung in der Bioinformatik

Fragen zur OOP in Java

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Programmieren I. Strategie zum Entwurf von Klassen. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Grundelemente objektorientierter Sprachen (1)

Vorkurs Informatik WiSe 15/16

Grundkurs C++ IDE Klassenhierarchien

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Datenzugriffskomponente mit JPA 2.1

Kurzeinführung in UML

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Grundkurs C++ IDE Klassenhierarchien

Java, OO und UML Fortsetzung

Programmieren in Java

Entwurf: Fortgeschrittene Konzepte

Software Engineering Klassendiagramme Einführung

Modellierung und Programmierung 1

Skriptum Bauinformatik SS 2013 (Vorlesung III)

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

Programmieren in Java

4. AuD Tafelübung T-C3

Praxis der Programmierung

Programmierung und Angewandte Mathematik

Fakultät IV Elektrotechnik/Informatik

Java Einführung Klassendefinitionen

Transkript:

Java Prof. Dr. Stefan Enderle NTA Isny

6. Klassen (Einführung, UML)

Nachtrag

Objekte In einem Software-System können, je nach Anwendung, viele "Objekte" vorkommen. Beispiele: Beteiligte oder betroffene Personen (Kunde, Verkäufer, Ansprechpartner, Administrator,...) Zustände eines Prozesses (Transaktion, Buchung, Reparatur, Abflug, Ankunft,...) Sachgegenstände eines Prozesses (Vertrag, Rechnung, Memo,...) Alltagsobjekte der Anwendungsdomäne (Auto, Haus,...) Infrastruktur (Zimmer, Zimmerplan, Firmenhierarchie,...)

Objekte Ein Objekt enthält Attribute ( = Daten oder Zustand ) Methoden ( = Funktionen ) Graphische Darstellung (unabhängig von Programmiesprache) durch UML Klassendiagramm.

UML Klassenmodell Detailgrade: Nur Klassenname Klassenname und Attribute Klassenname, Attribute und Methoden Aufführungssaal Aufführungssaal Ort Bezeichnung Art Anzahl_Plätze Kosten_pro_Tag Aufführungssaal Ort Bezeichnung Art Anzahl_Plätze Kosten_pro_Tag definieren suchen

UML Klassenmodell Attribute: Gedächtnis eines Objektes Eigenschaften Alle Attribute-Werte zusammen: Zustand Person Name Geschlecht Haarfarbe Augenfarbe Alter Aufführungssaal Ort Bezeichnung Art Anzahl_Plätze Kosten_pro_Tag Attribute, die z.b. in einer Datenbank gespeichert werden, um das Objekt später zu rekonstruieren, heißen persistent.

UML Klassenmodell Methoden: Fähigkeiten einer Klasse Unterscheidungsmöglichkeit: Konstruktoren und Destruktoren Speichern und Laden von Objektzuständen Attribute oder Gesamtzustand ändern Attribute oder Gesamtzustand auslesen Berechnung ausführen, basierend auf aktuellem Zustand

UML Klassenmodell Methoden Person Name Geschlecht Haarfarbe Augenfarbe Alter definieren suchen Alter_festlegen Haarfarbe_ändern löschen laden speichern Aufführungssaal Ort Bezeichnung Art Anzahl_Plätze Kosten_pro_Tag definieren suchen

UML Klassenmodell Vererbung: In Klassen kann es inhaltliche Übereinstimmung geben: Attribute können gleich sein (Typ und Wert) Methoden können gleich sein (Parameter, Rückgabewert, Code) Gibt es genügend Übereinstimmungen, so können diese über die Vererbungsbeziehung verbunden werden: Generalisierung / Spezialisierung (GenSpec)

UML Klassenmodell Vererbung: Generalisierung / Spezialisierung (GenSpec): Platz-Ticket Veranstaltung Aufführungssaal Datum Platz Zähl-Ticket Veranstaltung Aufführungssaal Datum Anzahl_Plätze verkaufen Platz_zuweisen Platz_ändern stornieren suchen verkaufen Anzahl_zuweisen Anzahl_ändern stornieren suchen

UML Klassenmodell Vererbung: Generalisierung / Spezialisierung (GenSpec): Ticket Veranstaltung Aufführungssaal Datum Platz-Ticket Platz Platz_zuweisen Platz_ändern verkaufen stornieren suchen Zähl-Ticket Anzahl_Plätze Anzahl_zuweisen Anzahl_ändern Bem: Pfeile leer!

UML Klassenmodell Abstrakte Oberklasse: Von der Oberklasse Ticket kann kein Objekt erzeugt werden { abstract } Ticket {abstract} Veranstaltung Aufführungssaal Datum Platz-Ticket Platz Platz_zuweisen Platz_ändern verkaufen stornieren suchen Zähl-Ticket Anzahl_Plätze Anzahl_zuweisen Anzahl_ändern

UML Klassenmodell Vererbungsbeziehung: Wenn es auf Attribute und Methoden nicht ankommt: Ticket {abstract} Platz-Ticket Zähl-Ticket

Datentypen, Sichtbarkeit Beispiel: Platz-Ticket Platz Platz_zuweisen Platz_ändern Ticket {abstract} Veranstaltung Aufführungssaal Datum verkaufen stornieren suchen Zähl-Ticket Anzahl_Plätze Anzahl_zuweisen Anzahl_ändern Typen? Sichtbarkeit?

Erweiterungen Sichtbarkeit der Attribute: Angaben durch Zeichen vor dem Attributnamen: + = public: Systemweiter Zugriff - = protected: Zugriff nur durch Instanzen der Klasse # = protected: Instanzen der Klasse und Unterklassen unterstrichen = class-scope (static): Systemweiter Zugriff ohne Instanz (Eigenschaft der Klasse) Fenster Standardgröße +aktuellegröße -tags #owner

Erweiterungen Typen der Attribute: Angabe des Typs nach : hinter dem Attributnamen: Fenster Standardgröße: Rechteck +aktuellegröße: Rechteck -tags: byte #owner: Fenster*

Erweiterungen Initialisierung der Attribute: Initialisierungswerte werden nach = hinter dem Typ angegeben: Fenster Standardgröße: Rechteck = (200,100) +aktuellegröße: Rechteck -tags: byte = 128 #owner: Fenster* = NULL

Erweiterungen Sichtbarkeit der Methoden: Angabe von +, -, #, _ wir bei Attributen: Fenster Standardgröße: Rechteck = (200,100) +aktuellegröße: Rechteck -tags: byte = 128 #owner: Fenster* = NULL -zeigefenster +öffnen +anzkinder #minimiereallekinder

Erweiterungen Typen der Parameter und Rückgabewerte von Methoden: Wie bei Attributen: Name : Typ: Fenster Standardgröße: Rechteck = (200,100) +aktuellegröße: Rechteck -tags: byte = 128 #owner: Fenster* = NULL -zeigefenster() +öffnen(owner:fenster*):boolean +anzkinder():int #minimiereallekinder()

Vereinbarungen Um das Klassendiagramm nicht zu überladen, wurde vereinbart, dass folgende Kategorien von Methoden weggelassen werden: Konstruktoren: Initialisierung des Objekts Destruktoren: Maßnahmen vor Beendigung des Objekts Set-Methoden: Setzen (einzelner) Attributwerte Get-Methoden: Lesen (einzelner) Attributwerte