Implementierung Umsetzung OO Konzepte in JAVA

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Definition von Klassen in Java
Einführung in die Programmierung Zusammenfassung
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
MVC.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Abstrakte Klassen.
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Konstruktoren.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Entwurfsmuster – Iterator
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Bestimmung des ggT zweier Zahlen
Informatikunterricht mit Java
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Implementierungsphase
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Programme dokumentieren mit JavaDoc
Rekursion mit Listen: Quicksort
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Komponentenschnittstellen (1)
Objektorientierte Analyse
1.3 Klassen und Beziehungen
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
EPROG Tutorium #4 Philipp Effenberger
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Java-Kurs Übung Besprechung der Hausaufgabe
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Schnittstellen.
Aufgaben zu Rückgabewerten
Felder in Java.
Allgemeine Befehle für die allgemeine Liste
Mit der Turtle Java Programmieren
Grundkurs Informatik mit Java
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Implementierung Umsetzung OO Konzepte in JAVA JAVA *.java C++ C++ public class Projekt { private String Bezeichnung; private Date Termin; public Projekt(String bez, Date ter) { } } public class Auftraggeber private String FirmenName; private String Ort; private Hashtable BeauftragteProjekte; ... Projekt Bezeichnung Termin Projekt() 0..* leer Beauftragt 1 Auftraggeber FirmenName Ort Aggregation beauftragt() storniert()

Implementierung der Methoden in JAVA JAVA *.java C++ C++ public class Auftraggeber { private String FirmenName; private String Ort; private Hashtable BeauftragteProjekte; public Projekt beauftragt(String bez, Date term) Projekt neuPrj = new Projekt(bez, term); BeauftragteProjekte.put(bez, neuPrj); return neuPrj; } ...

Tätigkeiten der Implementierung "Programmieren im Kleinen" Konzeption von Datenstrukturen und Algorithmen Verfeinerung Dokumentation der Problemlösung Zeit- und Speicherkomplexität bestimmen Test oder Verifikation

Ergebnisse der Implementierung .java C++ C++ public class Projekt { private String Bezeichnung; private Date Termin; Quellcode Objektcode Testprotokoll, Testplan .class C++ C++ 010010100100111010100010111110111 100111001110110010010111000110101 100101001111010101111010111100101 110111001011111101000000000000100 000000011010001000010111101011011 .doc C++ C++ Testcase 123: Zeitnachweis erfassen Vorbedingung:

Programmierfehler Eine Klassifikation Quelle: Grams 90, S.19 Programmierfehler Irrtümer Schnitzer überindividuell (Denkfallen) individuell angeborenes Verhalten erlerntes Verhalten Begabung Ausbildung

Prinzipien der Implementierung Verbalisierung Schrittweise Verfeinerung Integrierte Dokumentation Problemadäquate Datentypen

Verbalisierung Aussagekräftige Namensgebung C++ C++ // wenig aussagekräftige Bezeichner Feld1, Liste, Zähler // besser Messreihe1, BestellPositionen, AnzahlAnZeichen problemfreie, technische Bezeichner problembezogene Bezeichner

Verbalisierung Aussagekräftige Namensgebung C++ C++ // Berechnung einer Prämie P = G1 + Z * D; // besser Prämie = Grundprämie1 + Zulage * Dienstjahre; Ohne Aussagekraft, zu kurz klar

Verbalisierung Symbolische Konstanten C++ C++ // Konstante Prämie = 50.0 + 10.0 * Dienstjahre; // besser final float Grundprämie = 50.0; final float Zulage = 10.0; Prämie = Grundprämie + Zulage * Dienstjahre; unverständliche Konstante klar

Verbalisierung integrierte Kommentare C++ C++ // i um eins erhöhen i = i + 1; // besser Menge = Menge + 1; sagt bereits der Programmcode dokumentierender Programmcode

Integrierte Dokumentation Programmkopf C++ C++ /** * class Kunde * Auftraggeber in der Projektverwaltung * * @author Daniela Worel * @version V1.0 * @see IT Kompaktkurs * state akzeptiert */ class Kunde ...

Problemadäquate Datentypen z.B. Aufzählungstyp C++ C++ // schlecht int stand; // 1=ledig, 2=verheiratet,… // besser enum Familienstand {ledig,verheiratet,geschieden,verwitwet}; Familienstand stand; // noch besser class Familienstand { public boolean isLedig() {} ...

Abstrakte Datentypen z.B. Familienstand C++ C++ // enumeration class class Familienstand { private int Stand; public boolean isLedig() {} public boolean isVerheiratet() {} public void setVerheiratet() {} public void setGeschieden() {} ... }

Entwurfsmuster Beobachter Observable from java.util 1 * <interface> Observer from java.util hat > addObserver() deleteObserver() notifyObservers() View- Familienstand Familienstand isVerheiratet() isGeschieden() setVerheiratet() ... update ()

Implementierung des Beobachtermusters in JAVA C++ C++ class Familienstand extends Observable { public void setVerheiratet() { ... notifyObservers(); } ... } class ViewFamilienstand implements Observer ...