4. AuD Tafelübung T-C3



Ähnliche Dokumente
Objektorientierte Programmierung. Kapitel 12: Interfaces

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

Vorlesung Programmieren

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Arbeiten mit UMLed und Delphi

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Java: Vererbung. Teil 3: super()

Einführung in die Programmierung

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

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

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

Klassendiagramm. (class diagram)

Software-Engineering 2. Übungen zur Wiederholung. IT works. Metris GmbH

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Algorithmen und Datenstrukturen

SWE5 Übungen zu Software-Engineering

Große Übung Praktische Informatik 1

Objektorientierte Programmierung

Innere Klassen in Java

Objektorientierte Programmierung OOP

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

SMS-Tool. Seite 1 von 8

SEQUENZDIAGRAMM. Christoph Süsens

Anleitung über den Umgang mit Schildern

Java Einführung Abstrakte Klassen und Interfaces

Unified Modeling Language (UML)

Einführung in die Java- Programmierung

Programmierkurs Java

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Programmieren in Java

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Objektorientierte Programmierung

Professionelle Seminare im Bereich MS-Office

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EndTermTest PROGALGO WS1516 A

Statuten in leichter Sprache

Algorithmen und Datenstrukturen 07

1 Mathematische Grundlagen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Folge 18 - Vererbung

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Professionelle Seminare im Bereich MS-Office

Grundwissen Informatik 6. Jahrgangsstufe

Von der UML nach C++

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

Applet Firewall und Freigabe der Objekte

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Einführung in die Programmierung für NF

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Übung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.

FAMILIENSTAND ALLEINERZIEHENDE MÜTTER

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Installation OMNIKEY 3121 USB

Prüfung Software Engineering I (IB)

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Prinzipien Objektorientierter Programmierung

DAS HALLENBUCHUNGSPROGRAMM EBUSY

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Kapitel 6. Vererbung

Datenbanken Microsoft Access 2010

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Inhaltsverzeichnis. 1. Fragestellung

3. Konzepte der objektorientierten Programmierung

Kapitel 6. Vererbung

U08 Entwurfsmuster (II)

Java Einführung Packages

Word 2010 Schnellbausteine

Java Virtual Machine (JVM) Bytecode

Grundkonstrukte der Objektorientierung in Java, C# und C++

Avenue Oldtimer Liebhaber- und Sammlerfahrzeuge. Ihre Leidenschaft, gut versichert

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Wir machen neue Politik für Baden-Württemberg

Zugriff auf die Modul-EEPROMs

Human-Computer-Interaction und Psychologie Aufgaben- und Kontextanalyse

Probeklausur Softwareengineering SS 15

Bedienung von BlueJ. Klassenanzeige

Javakurs zu Informatik I. Henning Heitkötter

Software Engineering Klassendiagramme Einführung

5. Abstrakte Klassen

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

STRATO Mail Einrichtung Mozilla Thunderbird

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Warum kann ein Flugzeug fliegen?

4.4 AnonymeMärkteunddasGleichgewichtder"vollständigen Konkurrenz"

WhiteStarUML Tutorial

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Mit Papier, Münzen und Streichhölzern rechnen kreative Aufgaben zum Umgang mit Größen. Von Florian Raith, Fürstenzell VORANSICHT

So wird s gemacht - Nr. 24

2015 conject all rights reserved

MCRServlet Table of contents

Technische Dokumentation SilentStatistikTool

Client-Server-Beziehungen

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Transkript:

4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010

Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) { for ( i n t j = 0; j < x [ i ]. l e n g t h ; j ++) { System. out. p r i n t ( " x " ) ; System. out. p r i n t l n ( ) ; / / Ausgabe : / / x x x x / / x x x x / / x x

Arrays Längenberechnung S t r i n g [ ] [ ] x = new S t r i n g [ 3 ] [ 4 ] ; x [ 2 ] = new S t r i n g [ 2 ] ; i n t length = 0; for ( i n t i = 0; i < x. l e n g t h ; i ++) { i f ( x [ i ] == null ) { continue ; for ( i n t j = 0; j < x [ i ]. l e n g t h ; j ++) { / / i f j e nach Aufgabe n o e t i g oder n i c h t i f ( x [ i ] [ j ] == null ) { continue ; length ++; / / l e ngth = 10

Integerdivison Integerdivison double r e s u l t ; r e s u l t = 1 / 5 ; / / = 0, I n t e g e r d i v i s o n! r e s u l t = 1 / 5. ; / / = 0.2 r e s u l t = 1. / 5 ; / / = 0.2 r e s u l t = 1. / 5. ; / / = 0.2

Abstrakte Klassen Abstrakte Klassen Klasse die Variablen und Methoden vorgibt, aber nicht instantiiert werden kann werden mit abstract erstellt zur Verwendung müssen Unterklassen gebildet werden eine nicht-abstrakte Klasse muss alle abstrakten Methoden überschreiben

Abstrakte Klassen Beispiel public abstract class Lok { public double geschwindigkeit ; public double gewicht ; public abstract void l o s f a h r e n ( ) ; public class ELok extends Lok { public void l o s f a h r e n ( ) { / /... Lok l = new Lok ( ) ; / / Compiler Fehler ELok e = new ELok ( ) ; Lok f = new ELok ( ) ;

Interfaces Schnittstellen Schnittstellen schreiben die Existenz von Methoden vor Klassen, die Interfaces implementieren, müssen die Methoden der Interfaces überschreiben Beispiel Klassen können mehrere Interfaces implementieren Definition durch implements public interface Logger { public void log ( S t r i n g s t r i n g ) ;

Interfaces Beispiel public interface Drawable { public void draw ( ) ; public interface P r i n t a b l e { public void p r i n t ( P r i n t e r p ) ; public class P i c t u r e implements P r i n t a b l e, Drawable { public void p r i n t ( P r i n t e r p ) {... public void draw ( ) {...

Überladen Überladen Methoden mit gleichem Namen aber unterschiedlichen Parametern Beispiel public void p r i n t ( S t r i n g s t r i n g ) {... public void p r i n t ( i n t a ) {... public void p r i n t ( ) {...

Überschreiben Überschreiben Methode mit gleichem Namen und Parametern die in einer Unterklasse neu definiert wird Beispiel public class A { void p r i n t ( ) { System. out. p r i n t l n ( " a " ) ; public class B extends A { void p r i n t ( ) { System. out. p r i n t l n ( " b " ) ; A a = new A ( ) ; B b = new B ( ) ; a. p r i n t ( ) ; / / a b. p r i n t ( ) : / / b

UML UML Unified Modeling Language Graphische Modellierungssprache Spezifizieren Konstruieren Visualisieren Dokumentieren von Softwaresystemen a in Form von Diagrammen a Quelle: Konzeptionelle Modellierung, Vorlesungsfolie UML 1 Ziel Exakte, eindeutige, unmissverständliche, umfassende Spezifikation des Problems.

Use-Case Diagramm Use-Case Diagramm Funktionale Beschreibung des Systems Elemente: Akteure und Anwendungsfälle Akteure werden als Strichmännchen dargestellt Anwendungsfälle als Ovale Akteur und Anwendungsfälle werden durch Striche verbunden Anwendungsfälle finden innerhalb des Systems statt (als Rechteck dargestellt)

Use-Case Diagramm (Beispiel) Das umzusetzende System soll es einem Passagier ermöglichen, einen (beliebigen aber noch nicht ausgebuchten) Flug zu buchen. Eine bereits erfolgte Buchung kann der Passagier bis 14 Tage vor dem Flug stornieren. Die Buchung kann der Passagier entweder über ein Webinterface selbst vornehmen bzw. stornieren oder telefonisch mit einem Call-Center-Agent unseres Unternehmens organisieren. Dazu muss er seine persönlichen Daten (Name, Geburtsdatum, Adresse, Kreditkartennummer oder Kontonummer) sowie die gewünschten Reisedaten angeben (Reisedatum und Flugnummer). Unsere Verwaltungsangestellten drucken die Flugscheine eine Woche vor dem Flug aus, sofern der Zahlungseingang erfolgt ist, und versenden sie per Post an die Passagiere. Die Reiseabwicklung erfolgt am Reisetag wie üblich zweistufig: Zunächst liefert der Passagier sein Gepäck am Check-In-Schalter ab, vereinbart dabei den Sitzplatz mit dem Check-In-Agent (diese Information muss natürlich auch im System gespeichert werden) und bekommt dafür sein Bordticket. Anschließend erfolgt das Boarding, bei dem der Kontrollabriss des Bordtickets vom Boarding-Agent eingescannt wird, so dass im System registriert werden kann, wer tatsächlich an Bord des Flugzeugs ging.

Substantivanalyse Substantivanalyse Klassen beschreiben Objekte in der realen Welt Substantivanalyse macht es einfacher potentielle Klassen zu finden nicht alle Substantive sind sinnvolle Klassen, z. B. außerhalb des Systems Ereignisse/Aktionen zu allgemeine Substantive mögliche Klassenvariablen Aktoren die nicht zum Kontext passen etc. zuerst so wenig Klassen wie möglich modellieren erweitern ist einfacher als Klassen zu streichen

Substantivanalyse (Beispiel) Das umzusetzende System soll es einem Passagier ermöglichen, einen (beliebigen aber noch nicht ausgebuchten) Flug zu buchen. Eine bereits erfolgte Buchung kann der Passagier bis 14 Tage vor dem Flug stornieren. Die Buchung kann der Passagier entweder über ein Webinterface selbst vornehmen bzw. stornieren oder telefonisch mit einem Call-Center-Agent unseres Unternehmens organisieren. Dazu muss er seine persönlichen Daten (Name, Geburtsdatum, Adresse, Kreditkartennummer oder Kontonummer) sowie die gewünschten Reisedaten angeben (Reisedatum und Flugnummer). Unsere Verwaltungsangestellten drucken die Flugscheine eine Woche vor dem Flug aus, sofern der Zahlungseingang erfolgt ist, und versenden sie per Post an die Passagiere. Die Reiseabwicklung erfolgt am Reisetag wie üblich zweistufig: Zunächst liefert der Passagier sein Gepäck am Check-In-Schalter ab, vereinbart dabei den Sitzplatz mit dem Check-In-Agent (diese Information muss natürlich auch im System gespeichert werden) und bekommt dafür sein Bordticket. Anschließend erfolgt das Boarding, bei dem der Kontrollabriss des Bordtickets vom Boarding-Agent eingescannt wird, so dass im System registriert werden kann, wer tatsächlich an Bord des Flugzeugs ging.

Substantivanalyse (Beispiel) Das umzusetzende System soll es einem Passagier ermöglichen, einen (beliebigen aber noch nicht ausgebuchten) Flug zu buchen. Eine bereits erfolgte Buchung kann der Passagier bis 14 Tage vor dem Flug stornieren. Die Buchung kann der Passagier entweder über ein Webinterface selbst vornehmen bzw. stornieren oder telefonisch mit einem Call-Center-Agent unseres Unternehmens organisieren. Dazu muss er seine persönlichen Daten (Name, Geburtsdatum, Adresse, Kreditkartennummer oder Kontonummer) sowie die gewünschten Reisedaten angeben (Reisedatum und Flugnummer). Unsere Verwaltungsangestellten drucken die Flugscheine eine Woche vor dem Flug aus, sofern der Zahlungseingang erfolgt ist, und versenden sie per Post an die Passagiere. Die Reiseabwicklung erfolgt am Reisetag wie üblich zweistufig: Zunächst liefert der Passagier sein Gepäck am Check-In-Schalter ab, vereinbart dabei den Sitzplatz mit dem Check-In-Agent (diese Information muss natürlich auch im System gespeichert werden) und bekommt dafür sein Bordticket. Anschließend erfolgt das Boarding, bei dem der Kontrollabriss des Bordtickets vom Boarding-Agent eingescannt wird, so dass im System registriert werden kann, wer tatsächlich an Bord des Flugzeugs ging.

CRC-Karte CRC-Karte beschreibt wofür die Klasse zuständig ist was die Klasse auslöst mit wem die Klasse zusammen arbeitet

Klassendiagramm Klassendiagramm stellt Attribute, Eigenschaften, Methoden und Beziehungen einer Klasse dar Beziehungen zwischen Klassen sind Kanten Vererbungsbeziehungen werden durch Pfeile dargestellt Sichtbarkeitsmodifikatoren: + public default # protected - private abstract, «interface»(gestrichelter Pfeil), static

Klassendiagramm Assoziationen zeigen Beziehungen zwischen Klassen werden durch einen Strich zwischen den Klassen visualisiert Multiplizitäten werden zu Assoziationen hinzugefügt geben an wie viele Objekte an der Beziehung teilnehmen stehen jeweils am anderen Ende der Kante Komposition geben einen Bestandteil an, der nicht unabhängig existieren kann werden durch eine gefüllte Raute dargestellt

Mathematische Funktionen Mathematische Funktionen Funktionen in der Java-API beschrieben Konstante Double.NaN definiert ungültige Zahl ( Not a Number ) Beispiele: 1 oder 0.0/0.0.

.jar-dateien.jar-dateien komprimierte Verzeichnisstruktur (eigentlich zip-datei) stellt Pakete bzw. Klassen zur Verfügung Implementierung der Klassen ist unbekannt API der Klassen bekannt, sie können direkt genutzt werden Verwendung $ javac cp. : Core. j a r CLC. java $ java cp. : Core. j a r CLC add 23 12

Fragen Fragen?