Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 10. Vorlesung WS 2002/2003.

Slides:



Advertisements
Ähnliche Präsentationen
Sortieren mit Binären Bäumen
Advertisements

Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
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.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
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 Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
DVG Klassen und Objekte
Einführung in die Programmierung Datensammlung
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
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,
Einführung in die Programmierung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Listen und Mengen Komplexitäten Iteratoren (Durchlaufen von Listen/Mengen)
Vorlesung Einführendes Beispiel-
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 11. Vorlesung WS 2002/2003.
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Lösung der Hausaufgaben von Vorlesung 10 Universität Bonn Institut für Kartografie und Geoinformation Dipl.-Ing. Dörschlag, Dr. Gröger, Prof. Dr. Plümer.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
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)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 14. Vorlesung WS 2001/2002.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Einführendes Beispiel
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 03/041 Übungsaufgabe Ergänzt die Klasse Dreieck aus der Hausaufgabe um eine Methode,
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Java Programme nur ein bisschen objektorientiert.
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java
Einführung in die Programmierung mit Java
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 10. Vorlesung WS 2002/2003

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/032 Übersicht Besprechung der Hausaufgabe Zugriffsspezifikationen (public, private,...) Polygon: umfangreicheres Beispiel Allgemeine Listen/Suchstrukturen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/033 Hausaufgabe Schreibt ein Programm, das die Reihenfolge der Elemente in einer beliebigen LinkedList umdreht und das Ergebnis in einer neuen LinkedList speichert. Testet das Programm mit geeigneten Elementen.

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/034 Lösung: import java.util.*;..... LinkedList ll = new LinkedList(); // Liste mit Werten füllen: ll.add(new Person()); ll.add(new Professor()); //Neue Liste für umgekehrte Reihenfolge LinkedList lNeu = new LinkedList(); //Liste Durchlaufen und andere füllen: Iterator it = ll.iterator(); while(it.hasNext()) { Object o = it.next(); lNeu.addFirst(o); }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/035 Zugriffsspezifikationen I Zugriffsspezifikation regeln welche Klassen, Attribute und Methoden wo verwendet werden können. Schlüsselwörter public, protected, private wird keine Zugriffsspezifikation angegeben, gilt der default-Modus friendly Differenziert für Klassen, Methoden, und Attribute Wichtiges Konzept der Objektorientierung: Geheimnisprinzip: Verbergen von Details der Implementierung, Zugriff nur über klar definierte Schnittstellen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/036 Zugriffsspezifikationen II public: Zugriff von allen Klassen protected: Zugriff von Klassen im selben Paket, auch Zugriff von Unterklassen in anderen Paketen friendly oder keine Spezifikation: Zugriff von Klassen im selben Paket, Zugriff nicht von Unterklassen in anderen Paketen private: Zugriff nur innerhalb derselben Klasse geheimer

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/037 Beispiel: Klasse Punkt public class Punkt{ private double xKoordinate; //Attribut private double yKoordinate; //Attribut public Punkt(){ xKoordinate = 0.0; yKoordinate = 0.0;} public Punkt( double x, double y ){ xKoordinate = x; yKoordinate = y;} public double x_Koordinate() {return xKoordinate;} public double y_Koordinate() {return yKoordinate;} public boolean equals(Punkt p){ if( p.xKoordinate == xKoordinate & p.yKoordinate == yKoordinate) return true; else return false;} public double abstand(Punkt p){ double a = Math.sqrt(Math.pow(xKoordinate - p.xKoordinate,2.0) + Math.pow(yKoordinate - p.yKoordinate,2.0)); return a;}}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/038 Umfangreicheres Beispiel: Polygone p4 p2 p3 p5 p1

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/039 Umfangreicheres Beispiel: Polygone Anwendung von Listen Anwendung von Zugriffsspezifikationen Kapselung Funktionalität von Polygonen: –Hinzufügen eines Punkts –Berechnung des Umrings –Berechnung des Flächeninhalts

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0310 Polygon: UML-Diagramm Polygon Punkt -x: double -y: double 3..* 1 hat_im_Umring {ordered}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0311 Klasse "Polygon": Attribute und Konstruktoren public class Polygon{ public LinkedList punktliste; public Polygon(Punkt p1, Punkt p2, Punkt p3) {punktliste = new LinkedList(); punktliste.add(p1); punktliste.add(p2); punktliste.add(p3); } public Polygon(double [] x_Koord, double [] y_Koord) {punktliste = new LinkedList(); for(int i = 0 ; i < x_Koord.length; i = i+1) { Punkt p = new Punkt(x_Koord[i],y_Koord[i]); punktliste.add(p); } }}

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0312 Klasse "Polygon": Benutzung //von Außen:.... Punkt p1 = new Punkt(1,1); Punkt p2 = new Punkt(1,2); Punkt p3 = new Punkt(2,1); Polygon poly1 = new Polygon(p1, p2, p3); double [] xArray = {1,1,3,2}; double [] yArray = {1,2,3,1}; Polygon poly2 = new Polygon(xArray, yArray);

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0313 Berechnung des Umfangs: Idee p4 p3 p5 p1 p1.abstand(p2) p2.abstand(p3) p2 p3.abstand(p4) p4.abstand(p5) p5.abstand(p1)

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0314 Übungsaufgabe Schreibt ein Programm (in einer "main"), das den Umfang eines Polygons berechnet. Hinweise: Klasse Polygon: public class Polygon{ public LinkedList punktliste;...} nutzt die Methode "abstand" von "Punkt" Eine LinkedList kann mehrere Iteratoren haben

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0315 Berechnung des Umfangs public static void main(String args[]) { Polygon poly = new Polygon(new Punkt(1,1), new Punkt(1,2), new Punkt(2,1)); double umfang = 0; Iterator ersterIt = poly.punktliste.iterator(); Iterator zweiterIt = poly.punktliste.iterator(); zweiterIt.next(); Punkt ersterPunkt; Punkt zweiterPunkt; while(zweiterIt.hasNext()) { ersterPunkt = (Punkt) ersterIt.next(); zweiterPunkt = (Punkt) zweiterIt.next(); umfang = umfang + ersterPunkt.abstand(zweiterPunkt); } ersterPunkt = (Punkt) poly.punktliste.getLast(); zweiterPunkt = (Punkt) poly.punktliste.getFirst(); umfang = umfang + ersterPunkt.abstand(zweiterPunkt); System.out.println(umfang); }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0316 Umfang: Anmerkungen Berechnung des Umfangs (Fläche,..) ist einfacher, wenn erster Punkt in Liste am Ende wiederholt wird Dann ist aber Einfügen von Punkten (am Ende oder Anfang) schwieriger (Konsistenz, erster == letzter) Wiederholung des ersten Punkts am Ende ist Implementierungsdetail (wie Frage Array oder Liste) verbergen dieser Details vor Nutzer des Polygons –Atttribut punktliste nicht public –Umfang als Methode –klar definierte, nutzerfreundliche Schnittstelle zu Polygon –Kapselung

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0317 Klasse "Polygon": Attribute und Konstruktoren public class Polygon{ protected LinkedList punktliste; public Polygon(Punkt p1, Punkt p2, Punkt p3){...} public Polygon(double [] x_Koord, double [] y_Koord){...} public double umfang() { double umfang = 0; Iterator ersterIt = punktliste.iterator(); Iterator zweiterIt = punktliste.iterator(); zweiterIt.next(); Punkt ersterPt, zweiterPt; while(zweiterIt.hasNext()) { ersterPt = (Punkt) ersterIt.next(); zweiterPt = (Punkt) zweiterIt.next(); umfang = umfang + ersterPt.abstand(zweiterPt); } ersterPt = (Punkt) punktliste.getLast(); zweiterPt = (Punkt) punktliste.getFirst(); umfang = umfang + ersterPt.abstand(zweiterPt); return umfang;} }

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0318 Listen und Mengen: vordefinierte Klassen AbstractCollection Set TreeSetHashSetLinkedListArrayList sortiert keine Duplikate AbstractMap Map TreeMapHashMap sortiert Einfache Container-DatenstrukturenAssoziative Datenstrukturen

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0319 Laufzeiten / Komplexität const.(mittel)const.HashMap O(log n) TreeMap const. (mittel)const.HashSet O(log n) TreeSet O(n)const.LinkedList/ ArrayList Suchen mit KeySuchenEinfügen/ Löschen Klasse

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0320 HashMaps Speichern Objekte (Klasse Object) in Struktur Zuordnung eines (Such-)Schlüssel zu Objekt (Key-Value-Pair) effizientes Suchen über Schlüssel Methoden: –put(Object Key, Object value) //Einfügen –Object get(Object Key)//Suchen –void clear() –int size() Weitere Methoden: JavaDoc

G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/0321 Hausaufgabe Schreibt eine Methode der Klasse Polygon, die den Flächeninhalt eines Polygons berechnet. Hinweise: Orientiert euch an der Methode "Umfang" Formel zur Berechnung des Flächeninhalts (Gaussche Flächenformel) in Diskreter Mathe, Vorlesung 2: k = 1 5 (x k - x k+1 )(y k + y k+1 ) F = 1 2 