Java-Kurs Übung Besprechung der Hausaufgabe

Slides:



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

Objektorientierte Programmierung
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Objektorientierte Programmierung
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
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
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
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.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Entwurfs- und Implementationsdiagramme
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
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.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
EPROG Tutorium #6 Philipp Effenberger
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Benutzeroberflächen und Graphik
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Listen und Mengen Komplexitäten Iteratoren (Durchlaufen von Listen/Mengen)
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.
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
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.
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.
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.
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 - 9. Übung Besprechung der Hausaufgabe
Abstrakte Klassen und das Interface-Konzept
Java Programme nur ein bisschen objektorientiert.
C++ FÜR cOMPUTERSPIELENTWICKLER
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
OOP II.
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
Thema 4: Klassenbibliothek
1. Die rekursive Datenstruktur Liste 1
Implementieren von Klassen
 Präsentation transkript:

Java-Kurs - 11. Übung Besprechung der Hausaufgabe Strukturierung von Programmen: Pakete Zugriffsspezifikationen (public, private, ...) Statische Methoden und Attribute Beispiel für vordefinierte Klassen: LinkedList

Hausaufgabe 9 Implementieren Sie die drei Klassen Polygon, Dreieck und Rechteck aus dem UML-Diagramm. Polygon soll eine Abstrakte Klasse sein. Erweitern Sie jede der drei Klassen um die Methode umfang(). Diese ist bei Polygon abstrakt. Erzeugen Sie ein Array, das Dreiecke und Rechtecke enthält. Berechnen Sie die Summe der Umfänge aller Dreiecke und Rechtecke im Array. Dreieck Rechteck Polygon

Pakete (Packages) dienen zur Strukturierung von Programmen (oberhalb von Klassen) weiterer Zweck: Eindeutigkeit von Klassen mit demselben Namen Paket entspricht Verzeichnis (analog: Klasse - Datei) Gleicher Name für Paket und Verzeichnis Bei Unterverzeichnissen mit Punkt "." verbunden Zugehörigkeit zu Paket: explizit durch Befehl package Beispiel

Beispiel für Paket: java.util In Java vordefiniertes Paket in Verzeichnis java/util Paketname: java.util Erster Befehl in allen Dateien des Pakets: package java.util;

Verwendung von Paketen Zugriff auf Klassen im selben Paket: problemlos Zugriff auf Klassen in anderem Paket: Paketname vor Klassenname: java.util.LinkedList oder import java.util.LinkedList bzw. import java.util.* und Zugriff über Klassennamen LinkedList

Default-Paket alle Klassen in Verzeichnissen, die im Forte Explorer unmittelbar verbunden sind, gehören zum Default Paket hier weder package- noch import-Befehl nötig

Vordefinierte Pakete In Java sind sehr viele nützliche Pakete vordefiniert (Bibliotheken), z.B. für Listen, Suchstrukturen, Benutzeroberflächen, Graphik, ... Übersicht: Öffnen der Datei c:/Programme/jdk1.3/docs/api/index.html

Standard-Paket Import des Pakets java.lang nicht erforderlich dieses Paket enthält z.B. die Klassen String Math System Object

Zugriffsspezifikationen I Welche Klassen, Attribute und Methoden können wo verwendet werden? Schlüsselwörter public, protected, private Differenziert für Klassen, Methoden, und Attribute Wichtiges Konzept der Objektorientierung: Geheimnisprinzip: Verbergen von Details der Implementierung, Zugriff nur über klar definierte Schnittstellen

Zugriffsspezifikationen II public: Zugriff von allen Klassen protected: Zugriff von Klassen im selben Paket, auch Zugriff von Unterklassen in anderen Paketen package (oder keine Angabe): Zugriff von Klassen im selben Paket, Zugriff nicht von Unterklassen in anderen Paketen private: Zugriff nur innerhalb derselben Klasse geheimer

Statische Methoden Bisher: Aufruf von Methoden nur für Objekte Oft Methode ohne Bezug zu Objekt erforderlich Beispiel: Berechnung der Quadratwurzel, Methode sqrt der Klasse Math: double d = Math.sqrt(23); Methode sqrt ist statisch, Deklaration: public static double sqrt(double a){...} Aufruf einer statischen Methode: Klassenname.Methodenname

Statische Attribute Bisher: Attribute gehören zu Objekten; jedes erzeugte Objekt hat eigenen Attributwert Oft Attributwert erforderlich, der Eigenschaft der Klasse ist (nicht des Objekts) Beispiel: Mitführen der Anzahl der bisher erzeugten Objekte der Klasse Dreieck statisches Attribut anzahl der Klasse Dreieck: class dreieck{ static double anzahl; ...} Alle Instanzen von Dreieck greifen auf denselben Wert Anzahl zu

Schlüsselwort final Attribute mit vorangestelltem final sind Konstanten, d.h. sie dürfen nicht verändert werden Methoden mit vorangestelltem final dürfen nicht überlagert werden (kein Polymorphismus, effizienter) Klassen mit vorangestelltem final dürfen keine Unterklassen haben (kein Polymorphismus, effizienter) Bsp: public final class String .....

Beispiel für vordefinierte Klassen: LinkedList Abstrakter Datentyp für Liste (vgl. Vorlesung "Diskrete Mathe") Elementtyp: Object Paket: java.util Schnittstelle: boolean add(Object o) void add(int index, Object element) Object get(int index) void clear() int size()

Typkonvertierung Erforderlich, wenn Variable vom Typ einer Oberklasse ist, aber auf Eigenschaften der Unterklasse zugegriffen werden soll (und tatsächlich Unterklasse vorliegt) Beispiel: Object o = ......; Dreieck d = (Dreieck) o; double u = d.Umfang(); Vorsicht: Laufzeitfehler, wenn Konvertierung nicht gelingt

Hausaufgabe 10 Erzeugen Sie mindestens zehn verschiedene Dreiecke (vgl. Hausaufgabe 9) und fügen Sie diese in eine LinkedList ein. Durchlaufen Sie die LinkedList und fügen Sie die Dreiecke, deren Umfang kleiner als ein Wert x ist, in eine neue LinkedList ein. Drucken Sie diese LinkedList aus (Der Wert x sollte so gewählt werden, dass diese Liste nicht leer ist).