Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java-Kurs Übung Besprechung der Hausaufgabe

Ähnliche Präsentationen


Präsentation zum Thema: "Java-Kurs Übung Besprechung der Hausaufgabe"—  Präsentation transkript:

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

2 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

3 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

4 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;

5 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

6 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

7 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

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

9 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

10 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

11 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

12 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

13 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 .....

14 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()

15 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

16 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).


Herunterladen ppt "Java-Kurs Übung Besprechung der Hausaufgabe"

Ähnliche Präsentationen


Google-Anzeigen