Seite 1. Kapitel 3: Datenstrukturen verwenden. 3.1 UML: Assoziationen und Multiplizitäten. 3.1 UML: Assoziationen und Multiplizitäten

Größe: px
Ab Seite anzeigen:

Download "Seite 1. Kapitel 3: Datenstrukturen verwenden. 3.1 UML: Assoziationen und Multiplizitäten. 3.1 UML: Assoziationen und Multiplizitäten"

Transkript

1 3. UML: ssoziationen und Multiplizitäten Kapitel 3: Datenstrukturen verwenden 3. UML: ssoziationen und Multiplizitäten 3.2 Systematische Umsetzung nach Java 3.3 Kollektionen und Iteratoren Definition: Eine (binäre) ssoziation S zwischen zwei Klassen K und beschreibt, daß die Instanzen der beiden Klassen in einer fachlich wesentlichen eziehung zueinander stehen. Semantik: Für jedes Objekt O der Klasse K gibt es eine individuelle, veränderbare und endliche Menge S von Objekten der Klasse, mit dem die ssoziation S besteht. naloges gilt Objekte von. Notation: K S eispiel: Leitung Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3 - Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-2 Leserichtung und ssoziationsenden m eispiel: ssoziationen Für ssoziationsnamen kann die Leserichtung angegeben werden. Es ist möglich, mehrere Namen eine ssoziation anzugeben. findet statt in ist Ort von esprechungsraum esprechungsraum VeranstOrt Reservierung Ein Name ein ssoziationsende bezeichnet die ssoziation (evtl. zusätzlich) aus der Sicht einer der teilnehmenden Klassen. esprechungsraum Veranstaltungsort Synonym zu ssoziationsende manchmal: Rollenname Privater leitet Teilnahme Mitglied Leiter Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-3 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-4 Multiplizität bei ssoziationen m eispiel: Multiplizitäten Definition Die Multiplizität einer Klasse K in einer ssoziation S mit einer Klasse begrenzt die Menge der Objekte der Klasse, mit denen ein Objekt von K in der ssoziation S stehen darf. Notation: S K Mult Multiplizität Mult: n (genau n Objekte der Klasse ) n..m (n bis m Objekte der Klasse ) n, n2 (n oder n2 Objekte der Klasse ) Zulässig n und m : Zahlenwerte (auch 0) (beliebiger Wert, einschließlich 0) eispiel: 2.. Teilnahme Privater esprechungsraum Reservierung VeranstOrt leitet.. Mitglied Leiter Teilnahme 2.. Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-5 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-6 Seite

2 ggregation m eispiel: ssoziationen und gregationen Definition: Ein Spezialfall der ssoziation ist die ggregation. Wenn die ssoziation den Namen besteht aus tragen könnte, handelt es sich um eine ggregation. Eine ggregation besteht zwischen einem ggregat und seinen Teilen. Notation: esprechungsraum Reservierung 0.. VeranstOrt 0.. eispiel: K Privater leitet.. Leiter Teilnahme 2.. Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-7 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-8 Das eispiel mit Operationen und ttributen esprechungsraum Hier Klasse raumnr Reservierung aus kapazität Platzgründen reservieren weggelassen freigeben freienraumsuchen name 0.. Ort 0.. Privater beschreibg titel.. Leiter beginn beginn leitet dauer dauer ort anzahl name wegzeit abteilung raumfestlegen Teilnahme genehmigen terminestätigen einladen 2.. absagen Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-9 und abstrakten Elementen und Vererbung verwaltung esprechungsraum raumnr name titel kapazität beginn reservieren dauer freigeben 0.. freienraumsuchen 0.. VeranstOrt.. Leiter Privater leitet anzahl ort name wegzeit raumfestlegen abteilung einladen Teilnahme terminestätigen absagen 2.. Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-0 Navigationsrichtung von ssoziationen ssoziationen werden verwendet, um im Objektgeflecht zu navigieren. ssoziationen sind im Normalfall in beiden Richtungen navigierbar (d.h. werden auf beiden Seiten wie ein ttribut behandelt). Spezialfall: einseitige Navigationsrichtung (d.h. nur auf einer Seite wie ttribut behandelt). eispiel (Programmcode im nächsten bschnitt): Qualifizierte ssoziation Definition: Eine Qualifikation (Qualifier) ist ein ttribut eine ssoziation zwischen Klassen K und, durch das die Menge der zu einem K-Objekt assoziierten -Objekte partitioniert wird. Zweck der Qualifikation ist direkter Zugriff unter Vermeidung von Suche. Notation: themen [0..] raumfestlegen einladen absagen leitet Name bteilung Teilnahme terminestätigen 2.. Navigationsrichtung statt: K K a Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3 - Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-2 Seite 2

3 Ein eispiel ohne qualifizierte ssoziation: Das eispiel mit qualifizierten ssoziationen: titel beginn dauer [0..] themen [0..] raumfestlegen einladen absagen Raumverwaltung einzigeinstanz freienraumsuchen vorhanden esprechungsraum raumnr kapazität reservieren freigeben freienraumsuchen titel beginn dauer [0..] themen [0..] raumfestlegen einladen absagen 0.. Veranstaltungsort Raumverwaltung einzigeinstanz freienraumsuchen größe vorhanden esprechungsraum 0.. beginn raumnr Veranstaltungsort reservieren kapazität freigeben Raumverwaltung.freienRaumSuchen (plaetze=0, start= :00, dauer=60, raum=r2); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-3 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K Systematische Umsetzung nach Java Zur Erinnerung: Realisierung von Klassen abteilung: String + terminestätigen (von: Date, bis: Date):boolean class { private String name; private String abteilung; public boolean terminestaetigen (Date von, Date bis) { // geeigneter Methodenrumpf und Konstruktoren Objekte class { private String name; private String abteilung; public (String name, String abteilung) { this.name = name; this.abteilung = abteilung; public (String name) { this.name = name; abteilung = ""; m = new ("Max Müller", "bt. "); Konstruktoren werden meist überladen. Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-5 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-6 Feinheit: Der Default-Konstruktor class { // ohne Konstruktor m = new (); Für jede Klasse gibt es immer mindestens einen Konstruktor. Wenn kein benutzerdefinierter Konstruktor vorliegt, wird ein "Default-Konstruktor" bereitgestellt. Der Default-Konstruktor ist nicht mehr die Klasse verfügbar, wenn irgendein benutzerdefinierter Konstruktor definiert wird! Standard-Realisierung von gerichteten ssoziationen mit beschränkter Multiplizität a a class { private a; class { private [] a; nnahme hier: Obergrenze der nzahl der -Objekte spätestens bei erstmaliger Eintragung von ssoziationsinstanzen bekannt und relativ klein. (llgemeinere Realisierung siehe Ende des Kapitels.) Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-7 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-8 Seite 3

4 Umsetzung einer gerichteten ssoziation abstimmen teilnahme terminestaetigen class { private [] teilnahme; private boolean abstimmen (Date beginn, int dauer) { boolean ok = true; for (int i=0; i<teilnahme.length; i++) ok = ok && teilnahme[i].terminestaetigen(beginn, dauer); return ok; Optionale und notwendige ssoziationen b b 0.. class { private b; nalog andere Multiplizitäten wie 0.. und.. class { private b; public ( b, ) { this.b = b; Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-9 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-20 Umsetzung verschiedener ssoziationen + anzahl: int leitet teilnahme 2.. abteilung: String class { static public int anzahl; private leitet; private teilnahme[]; public ( leitet, [] teilnehmer) { this.leitet = leitet; this.teilnahme = teilnehmer; anzahl += ; class { private String name; private String abteilung; private [] teilnahme; Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-2 Konstruktor ohne teilnahme -Parameter Realisierung von ggregation / Komposition b a class { private [] b; ggregationen können genau analog zu ssoziationen abgebildet werden! Kompositionen werden ebenfalls analog zu ssoziationen abgebildet. spezielle Semantik Komposition geht aber verloren! Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-22 bstraktionsstufen von UML-Diagrammen 3.3 Kollektionen und Iteratoren nalyse-modell Notation: UML Objekte: Fachgegenstände Klassen: Fachbegriffe Vererbung: egriffsstruktur nnahme perfekter Technologie Funktionale Essenz Grobe Strukturskizze Übergang ohne ruch (gemeinsame ologie) Entwurfs-Modell Notation: UML Objekte: Softwareeinheiten Klassen: Schemata Vererbung: Programmableitung Erfüllung konkreter Rahmenbedingungen Gesamtstruktur des Systems Genaue Strukturdefinition Mehr Struktur & mehr Details Java 2 Collection Framework Objektorientierte Datenstrukturbibliothek Java meiste Standard-Datenstrukturen abgedeckt Verwendung von Vererbung zur Strukturierung flexibel auch zur eigenen Erweiterung Geschichte : basiert auf Java Generic Library (JGL) der Firma ObjectSpace bis JDK. alte Datenstrukturklassen Vector, Hashtable seit Java.2 (Java-2) Standard => java.util. Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-23 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-24 Seite 4

5 nwendungsbeispiel Datenstrukturen Entwurfsmodell estellungsabwicklung (uszug): estellung kunde: String + neueposition(b: estellposition) + löscheposition(pos int) + sonderpreis(pos: int, preis: int) + auftragssumme(): int + print() estellposition anzahl: int preis: int + einzelpreis(): int + einzelpreis(p: int) + positionspreis(): int Sonderpreise als kleine Komplikation rtikel preis: int + preis(): int Testprogramm nwendungsbeispiel public static void main (String[] args) { rtikel tisch = new rtikel("tisch",200); rtikel stuhl = new rtikel("stuhl",00); rtikel schrank = new rtikel("schrank",300); estellung b = new estellung( Uniw"); b.neueposition(new estellposition(tisch,)); b.neueposition(new estellposition(stuhl,4)); b.neueposition(new estellposition(schrank,2)); b.print(); // Gesamtpreis 200 b.sonderpreis(,50); b.print(); // Gesamtpreis 050, weil Tisch billiger Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-25 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-26 Naive Realisierung mit rrays () class estellung { private estellposition[] liste; private int anzahl = 0; public estellung(string kunde) { this.kunde = kunde; liste = new estellposition[20]; public void neueposition (estellposition b) { // was passiert bei mehr als 20 Positionen? liste[anzahl] = b; anzahl++; public void loescheposition (int pos) { // ist mit rrays nicht einfach zu realisieren! Naive Realisierung mit rrays (2) public void sonderpreis (int pos, int preis) { liste[pos].einzelpreis(preis); public int auftragssumme() { int s = 0; for(int i=0; i<anzahl; i++) s += liste[i].positionspreis(); return s; estellungs-methoden abgestützt auf estellpositions-methoden Dynamische rrays? Erforderlich wäre:. Obergrenze erweiterbar 2. utomatisches Zusammenschieben beim Löschen Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-27 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-28 Klassifikation von Java-Datenstrukturen Java Collection Framework: Struktur Collection (Kollektion): nsammlung von Datenelementen Hinzufügen, Entfernen, Suchen, Durchlaufen Set (Menge): Mehrfachvorkommen spielen keine Rolle Reihenfolge des Einfügens spielt keine Rolle SortedSet (geordnete Menge): Ordnung auf den Elementen List (Liste): Mehrfachvorkommen werden separat abgelegt Reihenfolge des Einfügens bleibt erhalten Map (bbildung): Zuordnung von Schlüsselwerten auf Eintragswerte Mehrfachvorkommen bei Schlüsseln verboten, bei Einträgen erlaubt SortedMap (geordnete bbildung): Ordnung auf den Schlüsseln List Collection Set SortedSet Keine Collection!! Map SortedMap Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-29 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-30 Seite 5

6 java.util.collection (uszug aus Protokoll) public interface Collection { public boolean add (Object o); public boolean remove (Object o); public void clear(); public boolean isempty(); public boolean contains (Object o); public Iterator iterator(); java.util.list (uszug) public interface List extends Collection { public boolean add (Object o); public boolean remove (Object o); public void clear(); public boolean isempty(); public boolean contains (Object o); zusätzlich Zugriff per Index public Object get (int index); public Object set (int index, Object element); public boolean remove (int index); public int indexof (Object o); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-3 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-32. Implementierung: java.util.rraylist (uszug) public class rraylist implements List { public boolean add (Object o); public boolean remove (Object o); //exception! public void clear(); public boolean isempty(); public boolean contains (Object o); public Object get (int index); public Object set (int index, Object element) public boolean remove (int index); public int indexof (Object o); public rraylist (int initialcapacity); public void ensurecapacity (int mincapacity); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-33 nwendungsbeispiel mit rraylist () import java.util.rraylist; class estellung { private rraylist liste; private int anzahl = 0; public estellung(string kunde) { this.kunde = kunde; liste = new rraylist(); public void neueposition (estellposition b) { liste.add(b); public void loescheposition (int pos) { liste.remove(pos); Methoden aus Collection verwendet Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-34 nwendungsbeispiel mit rraylist (falsch!) public void sonderpreis (int pos, int preis) { liste.get(pos).einzelpreis(preis); Methode aus List Compilermeldung: Method einzelpreis(int) not found in class java.lang.object. liste.get(pos).einzelpreis(preis); Object-Speicherplatz! Lösung mit cast auf nächster Folie!! Generisches Programmieren estellung kunde: String java.util.rraylist add(object o) anzahl: int liste get(pos: int): Object Zusicherung: lle von einem estellung-objekt über die liste-ssoziation erreichbaren Objekte sind aus der Klasse estellposition. Object implementierungsspezifisch! estellposition Typanpassung (cast): Explizite Typanpassung (dynamic cast) erforderlich,wenn Operationen der Unterklasse auf Objekte anzuwenden sind, die sich in Variablen einer Oberklasse befinden: ( Typ ) Variable hier: (estellposition)liste.get(i) Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-35 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-36 Seite 6

7 nwendungsbeispiel mit rraylist (2) public void sonderpreis (int pos, int preis) { ((estellposition)liste.get(pos)).einzelpreis(preis); public int auftragssumme() { int s = 0; for(int i=0; i<liste.size(); i++) s += ((estellposition)liste.get(i)).positionspreis(); return s; public void print () { System.out.println("estellung fuer Kunde "+kunde); for(int i=0; i<liste.size(); i++) System.out.println(liste.get(i)); System.out.println("Gesamt: "+auftragssumme()+ \n"); Iterator-Konzept ufzählen der in einem ehälter befindlichen Elemente Keine ussage über die Reihenfolge! Interface java.util.iterator interface Iterator { public abstract boolean hasnext(); public abstract Object next(); public void remove(); Iterator i = ; while (i.hasnext()) { dosomething(i.next()); Erzeugung eines Iterators eine beliebige Kollektion (deklariert in java.util.collection): public Iterator iterator(); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-37 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-38 nwendungsbeispiel mit Iteratoren import java.util.iterator; class estellung { private rraylist liste; public int auftragssumme() { Iterator i = liste.iterator(); int s = 0; while (i.hasnext()) uch hier ist ein Cast erforderlich!! s += ((estellposition)i.next()).positionspreis(); return s; 2. Implementierung: java.util.linkedlist (uszug) public class LinkedList implements List { public boolean add (Object o); public boolean remove (Object o); public void clear(); public boolean isempty(); public boolean contains (Object o); public Object get (int index); public Object set (int index, Object element) public boolean remove (int index); public int indexof (Object o); public void addfirst (Object o); public void addlast (Object o); Verwendungsbeispiel: implementierungsspezifisch! Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-39 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-40 Wechsel der Datenstruktur ist einfach! java.util.map (uszug) rraylist: class estellung { private List liste; public estellung(string kunde) { this.kunde = kunde; liste = new rraylist(); LinkedList: class estellung { private List liste; public estellung(string kunde) { this.kunde = kunde; liste = new LinkedList(); List ist ein Interface, keine Klasse! Nur im Konstruktor eine Instantiierung ändern! public interface Map { public boolean containskey (Object key); public boolean containsvalue (Object value); public Object get (Object key); public Object put (Object key, Object value); public Object remove (Object key); public Set keyset(); public Collection values(); Schlüsselmenge und Wertemenge sind jeweils Collections! ssoziativer Speicher oder Wörterbuch Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-4 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-42 Seite 7

8 nwendungsbeispiel Katalog + put (code: String, a: rtikel) + get (code: String): rtikel + anzahl(): int code: String rtikel preis: int + preis(): int Map: code -> rtikel ordnet jedem code seinen rtikel zu. nwendungsbeispiel mit HashMap class Katalog { private String name; // des Katalogs private Map inhalt; // die Eintraege public Katalog (String name) { this.name = name; this.inhalt = new HashMap(); // implementiert Map public void put (String code, rtikel a) { inhalt.put(code,a); public int anzahl() { return inhalt.size(); public rtikel get (String code) { return (rtikel)inhalt.get(code); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-43 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-44 Suche nach vorgefertigten Lösungen llgemeinere Realisierung von ssoziationen Collection Einfügen eines Elements Entfernen eines Elements ufzählen aller Elemente "ist enthalten"-bfrage dynamisch erweiterbar Einfügereihenfolge relevant? nein ja List bfrage an i-ter Position Ersetzen an i-ter Position Entfernen an i-ter Position Map Einfügen eines Werts einen Schlüssel Entfernen eines Schlüssel/Wert-Paars bfrage eines Werts einen Schlüssel "ist enthalten"-bfrage Schlüssel dynamisch erweiterbar Sortierung der Schlüssel relevant? Set Sortierung relevant? SortedSet kleinstes / größtes Element Elemente "über" / "unter" x SortedMap assoc Datenstruktur im -Objekt -Referenzen Wenn gebraucht, dann Datenstruktur mit ) ssoziation anlegen ) Einfügen (ohne Reihenfolge) 2) ssoziation entfernen 2) Entfernen (ohne Reihenfolge) 3) Durchlaufen aller bestehenden ssoziationen zu -Objekten 4) Manchmal: bfrage, ob ssoziation zu einem -Objekt besteht 5) Keine Obergrenze der Multiplizität gegeben 3) ufzählen aller Elemente (per Iterator) 4) "ist enthalten"-bfrage 5) dynamischer Erweiterbarkeit Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-45 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-46 z.. Realisierung von ssoziationen mit Set assoc class { private Set assoc; public void addssoc ( b) { assoc.add(b); public boolean testssoc ( b) { return assoc.contains(b); public { assoc = new HashSet(); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-47 eispiel zu Set-ssoziationen (Teil ) name teilnahme abteilung import java.util.set; import java.util.hashset; import java.util.iterator; class { private String name; private String abteilung; private Set teilnahme; public void teilnahmesetzen ( b) { teilnahme.add(b); public (String name, String abteilung) { this.name = name; this.abteilung = abteilung; this.teilnahme = new HashSet(); Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-48 Seite 8

9 eispiel zu Set-ssoziationen (Teil 2) class { public boolean terminestaetigen (Date beginn,int dauer) { boolean konflikt = false; Iterator it = teilnahme.iterator(); while (it.hasnext() &&!konflikt) { b = ()it.next(); if (b.inkonflikt(beginn, dauer)) konflikt = true; ; return!konflikt; eispiel: Raumverwaltung static esprechungsraum freienraumsuchen (int groesse, Hour beginn, int dauer) Suche unter vorhandenen Räumen nach Raum mit mindestens der Kapazität groesse, aber möglichst klein. Datenstruktur vorhandene Räume in Klasse Raumverwaltung» SortedSet (Elemente: esprechungsraum) Überprüfung eines Raumes, ob er die Zeit ab beginn die Länge dauer bereits belegt ist. Operation in Klasse esprechungsraum: boolean frei (Hour beginn, int dauer) Datenstruktur in Klasse esprechungsraum Zeiten (Stunden):» Set (Elemente: Hour) Zusatzanforderung (Variante): Überprüfung, welcher andere eine bestimmte Stunde belegt. Datenstruktur in Klasse esprechungsraum:» Map (Schlüssel: Hour, Wert: ) Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-49 Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-50 Raumverwaltung: Freien Raum suchen class Raumverwaltung { private static SortedSet vorhandeneraeume = new TreeSet(); // vorhandene Raeume, aufsteigend nach Groesse sortiert static esprechungsraum freienraumsuchen (int groesse, Hour beginn, int dauer) { esprechungsraum r = null; boolean gefunden = false; Iterator it = vorhandeneraeume.iterator(); while (! gefunden && it.hasnext()) { r = (esprechungsraum)it.next(); if (r.grossgenug(groesse)&&r.frei(beginn,dauer)) gefunden = true; ; return r; // also null, falls nicht gefunden Lothar Schmitz UniwM (teils nach Prof. Hußmann TUD) Objektoiertierte Programmierung K3-5 Seite 9

Kapitel 3: Datenstrukturen verwenden

Kapitel 3: Datenstrukturen verwenden Kapitel 3: Datenstrukturen verwenden 3.1 UML: Assoziationen und Multiplizitäten 3.2 Systematische Umsetzung nach Java 3.3 Kollektionen und Iteratoren Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD)

Mehr

Objektorientierte Implementierung

Objektorientierte Implementierung Objektorientierte Implementierung 10) Verfeinern von Assoziationen mit dem Java-2 Collection Framework Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Objektorientierte Implementierung

Mehr

Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework

Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl

Mehr

Objektorientierte Implementierung mit Java-Datenstrukturen

Objektorientierte Implementierung mit Java-Datenstrukturen Objektorientierte Implementierung mit Java-Datenstrukturen 1 Verfeinern von Assoziationen mit dem Java-2 Collection Framework 2 Programmieren gegen Schnittstellen 3 Auswahl von Datenstrukturen 4 Persistente

Mehr

Objektorientierte Implementierung

Objektorientierte Implementierung Objektorientierte Implementierung 11) Programmieren gegen Schnittstellen "Der Aufrufer programmiert gegen die Schnittstelle, er befindet sich sozusagen im luftleeren Raum." Siedersleben/Denert, Wie baut

Mehr

Objektorientierte Implementierung

Objektorientierte Implementierung Objektorientierte Implementierung 11) Programmieren gegen Schnittstellen Objektorientierte Implementierung mit Java-Datenstrukturen 10 Verfeinern von Assoziationen mit dem Java-2 Collection Framework 11

Mehr

JAVA KURS COLLECTION

JAVA KURS COLLECTION JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)

Mehr

Objektorientierte Implementierung

Objektorientierte Implementierung Objektorientierte Implementierung 11) Programmieren gegen Schnittstellen "Der Aufrufer programmiert gegen die Schnittstelle, er befindet sich sozusagen im luftleeren Raum." Siedersleben/Denert, Wie baut

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 21. Datenstrukturen 21.1 Einleitung 21.2 Listen 21.3 Assoziative Speicher 21.4 Bäume 21.5 Mengen 21.6 Das Collections-Framework in Java 21 Datenstrukturen 5 Mengen Einf. Progr. (WS 08/09) 870

Mehr

Mengen und Multimengen

Mengen und Multimengen Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 5 Mengen Informatik

Mehr

Abstrakte Datentypen und Java

Abstrakte Datentypen und Java Abstrakte Datentypen und Java ƒ hehueolfn ƒ 5HDOLVLHUXQJYRQ$'7 NRQNUHWH'DWHQW\SHQ %HLVSLHO5DWLRQDOH=DKO ƒ 3DUDPHWULVLHUWH'DWHQW\SHQ %HLVSLHO)HOG6RUWLHUWHV)HOG ƒ 6FKQLWWVWHOOHQNRQ]HSW ƒ :LFKWLJH'DWHQW\SHQLQ-DYD

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung

Mehr

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java

Kapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen

Mehr

1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?

1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig? Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welches Interface ist nicht

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält.

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält. Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Interfaces Maps and Collections Iterable Collection Map Vorteile: Set List Queue SortedMap

Mehr

Teil V. Generics und Kollektionen in Java

Teil V. Generics und Kollektionen in Java Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für

Mehr

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen

Mehr

Objektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen

Objektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen Stefan Brass: OOP (Java), 21. Collection Klassen 1/30 Objektorientierte Programmierung Kapitel 21: Einführung in die Collection Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

II.4.4 Exceptions - 1 -

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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Java Generics und Java API (2/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Listen Bisher: Collections

Mehr

3. Objektorientierte Analyse

3. Objektorientierte Analyse 3. Objektorientierte Analyse 3. Systemanalyse Witzfrage (nach Booch 9): Welches ist der älteste Beruf: Arzt, Bauingenieur oder Systemanalytiker? Anforderungsanalyse Analyse Anforderungs- Ermittlung Anforderungs-

Mehr

OCP Java SE 8. Collections

OCP Java SE 8. Collections OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue

Mehr

Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T]

Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Teil II: Datenstrukturen Datenstrukturen Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Nichtlineare Datenstrukturen: Bäume Modell(e): spezielle

Mehr

22) Programmieren gegen Schnittstellen

22) Programmieren gegen Schnittstellen 22) Programmieren gegen Schnittstellen "Der "Der Aufrufer Aufrufer programmiert programmiert gegen gegen die die Schnittstelle, Schnittstelle, er er befindet befindet sich sich sozusagen sozusagen im im

Mehr

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

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM

Informatik II. Vordefinierte Datenstrukturen. - Abbildungen Map. Seite 1 Th Letschert, THM Informatik II Vordefinierte atenstrukturen - Listen List - bbildungen Map - Mengen Set Seite 1 Th Letschert, THM atenstrukturen atenstrukturen Sprachelemente zur strukturierten Speicherung von aten atentyp

Mehr

II.4.6 Collections - 1 -

II.4.6 Collections - 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.6 Collections - 1 - Typische Datenstrukturen

Mehr

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338 Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Programmieren 2 16 Java Collections und Generizität

Programmieren 2 16 Java Collections und Generizität Programmieren 2 16 Java Collections und Generizität Bachelor Medieninformatik Wintersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Faulheit professionell: Fertige Datenbehälter

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Collections Thomas Mauermeier 15.01.2019 Ludwig-Maximilians-Universität München Collections? Was ist eine Collection? Container für mehrere Objekte

Mehr

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen Prof. Dr. Nikolaus Wulff Collections in Java 2 Java 2 Collections: http://java.sun.com/products/jdk/1.2/docs/guide/collections/index.html

Mehr

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer   144 Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.

Mehr

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12. Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1 Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1 Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch

Mehr

Kapitel 2: OO Grundlagen

Kapitel 2: OO Grundlagen Kapitel 2: OO Grundlagen 2.1 Objekte zum Leben erwecken (und Grundmechanismen verstehen) 2.2 Statische Elemente nutzen & vererben 2.3 Kooperation über Interfaces Lothar Schmitz UniBwM (teils nach Prof.

Mehr

Info B VL 14: Java Collections/Reflections

Info B VL 14: Java Collections/Reflections Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections

Mehr

Nützliche Utility-Klassen des JDK

Nützliche Utility-Klassen des JDK Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung

Mehr

Programmiertechnik II

Programmiertechnik II Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Objektorientierte Programmierung 22. 05. 2006 Aufgabe 9 (SMS-Eingabe am Handy mit Tries)

Mehr

Generische Polymorphie in Java-

Generische Polymorphie in Java- Generische Polymorphie in Java- Johannes Waldmann (HTWK Leipzig) Plan Beispiel Collections, Iteratoren, Maps Schnittstellen und Implementierungen Genaueres zum Typsystem Details zu Implementierungen zur

Mehr

Collections. Arthur Zaczek. Nov 2015

Collections. Arthur Zaczek. Nov 2015 Arthur Zaczek Nov 2015 1 Collections 1.1 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen, je nach Nutzung 1.2 Grundlegende

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK ECHNISCHE UNIVERSIÄ MÜNCHEN FAKULÄ FÜR INFORMAIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 9 F. Forster,. Gawlitza,

Mehr

Kapitel 5: Iterierbare Container

Kapitel 5: Iterierbare Container Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik

Mehr

Seite Systemanalyse. 3. Objektorientierte Analyse. 3.3 Realisierung von UML-Klassen in Java. Warnung: Modellierung vs.

Seite Systemanalyse. 3. Objektorientierte Analyse. 3.3 Realisierung von UML-Klassen in Java. Warnung: Modellierung vs. 3. Objektorientierte Analyse 3.1 Systemanalyse 3.2 Statische Modellierung mit UML 3.3 Einschub: Realisierung von UML-Klassen mit Java 3.4 Dynamische Modellierung mit UML 3. Systemanalyse 3.3 Realisierung

Mehr

Programmiertechnik II

Programmiertechnik II Programmiertechnik II Datentypen Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen:

Mehr

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite

Mehr

ADT: Java Collections und ArrayList

ADT: Java Collections und ArrayList ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,

Mehr

Kapitel 12: Java Collection Teil II

Kapitel 12: Java Collection Teil II Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque

Mehr

Kapitel 12: Java Collection Teil II

Kapitel 12: Java Collection Teil II Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Abstrakte Datentypen Stack und Queue zu implementieren und anzuwenden Vorteile von parametrischer Polymorphie

Mehr

19) Weitere Java-Konstrukte (zum Selbststudium)

19) Weitere Java-Konstrukte (zum Selbststudium) 19) Weitere Java-Konstrukte (zum Selbststudium) Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 15-0.1,

Mehr

Grundkonzepte java.util.list

Grundkonzepte java.util.list Grundkonzepte java.util.list Eine List ist eine Spezialisierung einer allgemeinen Ansammlung (Collection): Lineare Ordnung ist definiert Zugriff über Rang oder Position Volle Kontrolle wo eingefügt bzw.

Mehr

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition

Mehr

19) Weitere Java-Konstrukte (zum Selbststudium)

19) Weitere Java-Konstrukte (zum Selbststudium) Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie 19) Weitere Java-Konstrukte (zum Selbststudium) Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik

Mehr

Hashmap: Video Erklärung

Hashmap: Video Erklärung Hashmap Hashmap: Video Erklärung Definition und Motivation Array: Zugriff über Index=Zahl Wert(Value) Schlüssel(Key) Maier, Klaus 21 Array Hashtag: Zugriff über einen nichtnumerischen Wert 06431 92310

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Was gefällt Ihnen? Sehr ausführliches Skript Fragen / Aufgaben in der Vorlesung Praktische Beispiele Tolle Aufgabenblätter

Mehr

Programmieren I. Kapitel 13. Listen

Programmieren I. Kapitel 13. Listen Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen

Mehr

Kapitel 6: Java Collection Teil I

Kapitel 6: Java Collection Teil I Kapitel 6: Java Collection Teil I Übersicht Bemerkungen Collection List LinkedList und ArrayList Queue und Deque ArrayDeque 6-1 In diesem Kapitel Die Java-API enthält eine Sammlung von generischen Schnittstellen

Mehr

Kapitel 5: Interfaces

Kapitel 5: Interfaces Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,

Mehr

22) Programmieren gegen Schnittstellen. Typanpassungen mit Schnittstellen: Geordnete Listen mit ArrayList (1)

22) Programmieren gegen Schnittstellen. Typanpassungen mit Schnittstellen: Geordnete Listen mit ArrayList (1) 3 Schnittstellen und Implementierungen im -Framework 4 22) Programmieren gegen Schnittstellen Vererbung (extends) Implementierung (implements) "Der "Der Aufrufer Aufrufer programmiert programmiert gegen

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Java Generics & Collections

Java Generics & Collections Praktikum Effizientes Programmieren (Sommersemester 2018) Dennis Reuling 1 / 1 Praktikum Effizientes Programmieren (Sommersemester 2018) Agenda Teil 1 Generics 2 / 1 Praktikum Effizientes Programmieren

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

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

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

ALP II Dynamische Datenmengen

ALP II Dynamische Datenmengen ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung WS 2006/2007 Klassen und Vererbung in Java Walter Binder Universität Lugano 2006-11-23 Objektorientierte Programmierung 1 Überblick Konstruktoren Verdecken versus Überschreiben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Java I Vorlesung Collections

Java I Vorlesung Collections Java I Vorlesung 5 Collections 24.5.2004 Abstrakte Klassen und Interfaces Arrays Java Collections Framework Abstrakte Klassen: Motivation Häufig will man eine Klasse schreiben, die nur als Basisklasse

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur C und Objektorientierte Programmierung im WS 2003/04 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel:

Mehr

Collections. Arthur Zaczek

Collections. Arthur Zaczek Collections Arthur Zaczek Nov 2015 1/31 Collections Collections 2/31 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen,

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Kapitel 14. Das Java Collection Interface. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 14. Das Java Collection Interface. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 14 Das Java Collection Interface 14. Das Java Collection Interface 1. Collections 2. Iteratoren (Iterators) 3. Listen (List) 4. Mengen (Set) 5. Hashtabellen (Map) 6. Generics Folie 14.2 Das Java

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

Programmiermethodik 3. Klausur Lösung

Programmiermethodik 3. Klausur Lösung Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics

Mehr

Programmiertechnik II

Programmiertechnik II Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,

Mehr

Inner Class. 1 public class OuterClass { 2 private int var; 3 public class InnerClass { 4 void methoda() {}; 5 } 6 public void methodb() {}; 7 }

Inner Class. 1 public class OuterClass { 2 private int var; 3 public class InnerClass { 4 void methoda() {}; 5 } 6 public void methodb() {}; 7 } Inner Class 1 public class OuterClass { 2 private int var; 3 public class InnerClass { 4 void methoda() {}; 5 } 6 public void methodb() {}; 7 } Instanz von InnerClass kann auf alle Member von OuterClass

Mehr