Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language):...

17
Javakurs für Anfänger Einheit 14: Einführung in UML und Java API Dokumentation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Transcript of Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language):...

Page 1: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Javakurs für Anfänger

Einheit 14:

Einführung in UML und Java API Dokumentation

Lorenz Schauer

Lehrstuhl für Mobile und Verteilte Systeme

Page 2: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

1. Teil: Einführung in UML

Sequenzdiagramm

Klassendiagramm

Vererbung, Implementierung und Beziehungen

Beispiel

Heutige Agenda

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 2

Lernziele Einführung in UML Sequenz- und Klassendiagramme lesen und umsetzen können Mit der Java API Dokumentation arbeiten lernen

2. Teil: Die Java API Dokumentation

Überblick

Verwendung

Beispielklassen: String und Random

Praxis:

Klassendiagramm implementieren

Eingabe auf Zeit

Page 3: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

UML (Unified Modeling Language):

Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von Software/Systeme

Standardisiert nach ISO

Vereint eine Menge an Diagrammen (für verschiedenste Zwecke)

Klassen-

Objekt-

Sequenz-

Aktivitäts-

… -Diagramm

Wir beschränken uns hier im weiteren Verlauf auf Sequenzdiagramme und Klassendiagramme zur Veranschaulichung der Eigenschaften, Verhalten und Zusammenhänge unserer Klassen

Teil1: Einführung in UML

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 3

Page 4: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

UML-Sequenzdiagramme: Überblick

Das Sequenzdiagramm:

Ist ein Verhaltensdiagramm

Beschreibt den Austausch von Nachrichten bzw. Methodenaufrufe zwischen Klassen und/oder Objekten Klassen/Objekte werden nebeneinander dargestellt

Besitzen eine nach unten gerichtete Zeitlinie

Objekte haben Namen und einen Typ

Klassen haben nur den Klassennamen und reagieren auf (statische) Klassenmethoden

Klassen/Objekte können einen Aktivitätsbalken besitzen, der die Methodenausführung beschreibt

Gängige Interaktionen:

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 4

methodenname(Argumente)Oder: methodenname bzw. methodenname()

Statische_methodenname(Arg_name: Arg_typ)

obj_name: Typ obj_name: Typ

return bzw. return Ergebnis

Oder: :returntyp

eigeneMethode(Argumente)

Aktivitätsbalken

Page 5: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Beispiel aus der 2. Kursstunde:

UML-Sequenzdiagramme: Beispiel

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 5

Autohaus

fiatPunto:Auto

mercedes:Auto

main(args: String[])

<<return>> main

<<create>>

<<create>>

return

bremsen

bremsen

return

Page 6: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Beispiel aus der 2. Kursstunde:

UML – Klassendiagramme: Überblick

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 6

Auto

- name : String- preis : int

+ fahren (a: String, b: String ) + bremsen (): boolean

Klassenname

Attribute

Methoden

Sichtbarkeitsbereich:- private + public# protected

Methodenname Parametername: typ

Rückgabetyp

Attributname

Attributtyp

Autohaus

+ main(args: String[]) Statische Methode main(String[] args)

Page 7: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Darstellung der Vererbung:

UML – Klassendiagramme: Vererbung

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 7

Geometirsche2dFigur

Kreis Quadrat Rechteck

Tier{abstract}

Hund Katze Elefant

Page 8: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Darstellung der Implementierung:

UML – Klassendiagramme: Implementierung

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 8

<<Interface>>Auto

AutoImpl

+ bremsen()+ fahren()

+ bremsen()+ fahren()

Page 9: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

UML – Klassendiagramme: Beziehungen (Assoziation)

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 9

Quelle: https://homepages.thm.de/~hg11260/mat/uml.pdf

Quelle: https://de.wikipedia.org/wiki/Assoziation_(UML)#Komposition

Ein Gebäude besteht aus mindestens einem Raum.Ein Raum gehört genau zu einem bestimmten Gebäude. Stürzt das Gebäude ein, ist auch der Raum kaputt. (Gleiche Lebensdauer)

Eine Vorlesung hat immer mind. 3 Studenten. Ein Student kann in keiner oder mehreren Vorlesungen sein. Studenten haben längere Lebensdauer als Vorlesung

Page 10: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

UML – Klassendiagramme: Beispiel

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 10

Quelle: http://www.adolf-reichwein-schule.de/uploads/pics/UMLStack.png

Page 11: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Setzten Sie in Ihrem Eclipse-Projekt „Uebung14“ zunächst folgendes Klassendiagramm um:

Aufgabe zu UML

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 11

<<interface>>Iverwaltung

+ add(p: Person)+ remove(p : Person)+ clear()

VerwaltungImpl

- personenListe: ArrayList<Person>- verwalter: Verwalter

Person

- name: String- vorname: String- alter: int- verwaltet: boolean

+ Person(name: String, vorname: String, alter: int)+ getName(): String+ getVorname(): String+ getAlter(): int+ setVerwaltet(b:boolean)+ getVerwaltet(): boolean

Verwalter

- position: String

+ Verwalter(name: String, vorname: String, alter: int)+ setPosition(pos: String)+ getPosition(): String

0…*

0…*

1

+ VerwaltungImpl(v: Verwalter)+ add(p: Person)+ remove(p : Person)+ clear()+ main(args: String[])

add(): Fügt eine Person zur Liste hinzu. Das Flag verwaltet wird auf true gesetzt. remove(): Entfernt die entsprechende Person aus der Liste. Das Flag wird auf false gesetzt.clear(): Löscht alle Einträge aus der Liste. Setzt das Flag bei der gelöschten Person auf false.

Page 12: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Aufgabe zu UML

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 12

Führen Sie nun die Aktionen gemäß des folgenden Sequenzdiagramms aus:

VerwaltungImpl

hans:Verwaltermain(args: String[])

<<return>> main

<<create>>

setPosition(„Verwalter“)

p1:Person

p2:Person

verwaltung: VerwaltungImplnew VerwaltungImpl(hans)

new Person(„Hannes“,“Markus“,33)

new Person(„Strass“,“Maria“,26)

add(p1)setVerwaltet(true)

add(p2)setVerwaltet(true)

remove(p1)setVerwaltet(false)

Page 13: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Teil 2: Kurze Einführung in die Java API-Dokumentation

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 13

Zu finden unter: http://docs.oracle.com/javase/8/docs/api/

Page 14: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Nutzen Sie die Java API-Dokumentation und machen Sie sich zusätzlich mit folgenden Java-Klassen vertraut: Java.time.Instant

Java.time.Duration

Nutzen Sie nun die beiden Klassen und schreiben Sie ein Programm „Eingabetest“ in Ihrem Eclipse Projekt „Uebung12“:

Ein Dialogfeld (JOptionPane.showInputDialog) soll den Anwender auffordern den Text: „Fischers Fritze fischt frische Fische“ einzugeben.

Ihr Programm soll anschließend prüfen, ob der eingegebene Text mit dem Text „Fischers Fritze fischt frische Fische“ genau übereinstimmt und wie lange der Anwender für die Eingabe gebraucht hat.

Sie brauchen also 2 Zeitstempel (vor und nach der Eingabeaufforderung)

Benutzen Sie hierfür die beiden Klassen Instant und Duration aus der Java API

Falls die Eingabe korrekt war, soll ein entsprechender Text ausgegeben werden:

Fehlerfrei! Zeit: <Benötigte Sekunden> Sekunden

Falls die Eingabe nicht korrekt war, soll „Leider falsch!“ ausgegeben werden.

Aufgabe mit Java API Dokumentation

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 14

Page 15: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Sie haben nun die grundlegenden Elemente der objektorientierten Programmiersprache Java kennengelernt:

Klassen, Objekte, Variablen & Methoden

Zusammenspiel verschiedener Klassen und Objekte Abstraktion und Datenkapselung

Kontrollstrukturen

Statische und dynamische Arrays

Vererbung Subtyping, Typ-Casting, …

Abstrakte Klassen

Interfaces Anonyme innere Klassen

Polymorphismus

UML

Java API Dokumentation

Zusammenfassung

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 15

Page 16: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Fortführende Themen wären:

Exceptions

Generics

Weitere Datenstrukturen (verkettete) Listen, Stack, Schlangen (Queues), Hash-Tables, Bäume (Trees)

Frameworks Collection-Framework

Nebenläufigkeit Threads, Conditions, Synchronisation, Monitore

GUI-Programmierung mit Swing / JavaFX

Design-Pattern

Algorithmen Sortieren & Suchen, Rekursion, …

U.v.m.

Einfach am Ball bleiben und viel programmieren ;)

Den Java-Kurs für Fortgeschrittene im nächsten Semester besuchen…

Und jetzt…?

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 16

Page 17: Javakurs für Anfänger - uni-muenchen.de · 2018. 2. 7. · UML (Unified Modeling Language): Grafische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von

Vielen Dank

fürs Zuhören und Mitmachen!

Vielen Dank!

08.02.2018 Javakurs 14: UML und Java API - Lorenz Schauer 17