Packages in Java Vortrag: Melanie Reichel und Anja Weiß 10.1.2002.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Ein Beispiel in Java.
Objektorientierte Datenbanken
der Universität Oldenburg
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung
der Universität Oldenburg
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
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.
Ein Beispiel in Java.
Konstruktoren.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung X1 Sitzung X1: Packages & Wiederholung.
Objektorientierte Programmierung JDK-Klassenbibliothek
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.
Programmieren mit JAVA
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Packages Vortrag : Cornelia Hardt 23. November 1999.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Marcus Haller & René Schulze
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Entwurfs- und Implementationsdiagramme
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.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Oliver Spritzendorfer Thomas Fekete
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Programmbereich, zu dem eine Deklaration gehört Arten von Gültigkeitsbereichen -Namespace : Deklarationen von Klassen, Interfaces, Structs, Enums, Delegates.
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #6 Philipp Effenberger
Dynamische Webseiten-Generierung
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
CSS Cascading Style Sheets
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs Übung Besprechung der Hausaufgabe
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.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Thema 4: Klassenbibliothek
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Klassenbibliotheken: Einbinden und Benutzen von Klassen
 Präsentation transkript:

Packages in Java Vortrag: Melanie Reichel und Anja Weiß

Was sind packages? Wozu sind packages notwendig? Verwendung von packages Vordefinierte packages in Java Klassen- und Paketnamen Einbinden zusätzlicher Pakete Das public- Attribut Erstellen eigener Pakete Beispiel

Was sind packages? packages sind eine Möglichkeit, verwandte Klassen und Schnittstellen zu gruppieren. Sie ermöglichen es, dass Gruppen von Klassen nur bei Bedarf verfügbar sind. Sie beseitigen mögliche Namenskonflikte zwischen Klassen in unterschiedlichen Gruppen von Klassen. Ein Paket enthält eine beliebige Anzahl von Klassen, die nach Sinn, Verwendung oder auf der Grundlage der Vererbung zusammengefasst sind. packages können auch andere Pakete enthalten und bilden damit eine Hierarchieform, die ähnlich der Vererbungshierarchie ist. Jede Ebene stellt eine kleinere und spezifischere Gruppe von Klassen dar Oberste Ebene heißt java.

Nächste Ebene kann z.B. io, net, util oder awt heißen. Letzte Ebene kann dann z.B. das package image enthalten. Um sich auf eine Klasse in einem Paket zu beziehen, muß man alle Pakete angeben, in denen sich die Klasse befindet. z.B.: Die Klasse Color befindet sich in dem package awt. Dieses befindet sich im package java. Um Color zu verwenden, muß man folgende Notation verwenden: java.awt.Color. Die Klassenbibliotheken von JAVA befinden sich in dem Paket java. Die Klassen in diesem Paket stehen in jeder Implementierung von JAVA zur Verfügung. Dieses Paket enthält kleinere packages, die spezielle Teile der Funktionalität von JAVA beinhalten, z.B. Dateiein- und Ausgaben.

Wozu sind packages notwendig? Zur Organisation und Verwaltung von Klassen in Einheiten, um nur die Elemente zu verwenden, die für ein Programm benötigt werden. Sie reduzieren Namenskonflikte. Pakete dienen dazu, Klassen, Variablen und Methoden in größerem Umfang zu schützen, als dies auf der Basis von Klassen möglich ist. Sie lassen sich auch zu Identifikation verwenden.

Verwendung von packages Damit eine Klasse verwendet werden kann, muß angegeben werden, in welchem package sie liegt. Dazu gibt es zwei unterschiedliche Möglichkeiten 1. - Die Klasse wird über ihren vollen Namen angesprochen. - Die Klasse oder Pakete müssen nicht importiert werden, um sie auf diese Art zu verwenden. - In den Programmtext wird z.B. folgende Zeile eingefügt: java.awt.Font f = new java.awt.Font() - Diese Variante sollte nur dann verwendet werden, wenn eine Klasse in einem Programm nur ein- oder zweimal auftritt Eine Klasse wird über den Befehl import importiert. - Man kann dabei genau eine Klasse oder ein komplettes Klassenpaket importieren.

a) mit der folgenden Syntax wird genau eine Klasse importiert. import java.util.Vector ; b) Wenn man ein komplettes Klassenpaket importiert, werden alle Klassen, die als public erklärt wurden importiert. Es wird also folgender Befehl verwendet: import java.awt.* ; Das package java.lang wird bei jedem Compileraufruf automatisch importiert. Ein expliziter import davon ist niemals nötig. Eigene Klassen in Programmen, die nicht zu irgendeinem Paket gehören, werden in einem Standardpaket- das Default-Paket -platziert. die Quelldateien werden im aktuellen Verzeichnis abgelegt, dort kompiliert und automatisch eingebunden (ohne import Anweisung)

Compiler braucht nur ein Default- Paket zur Verfügung zu stellen, aber typischerweise hat jedes Verzeichnis die Rolle eines Default- Paketes Es können also beliebig viele Default- Pakete angelegt werden, indem man einfach neues Unterverzeichnis anlegt und Quelldatei dort ablegt

Vordefinierte Pakete in JDK Der Umfang der Laufzeitbibliothek hat sich mit jeder neuen Version erhöht JDK Standardpakete JDK Standardpakete JDK 1.2 über 50 Standardpakete JDK 1.3 über 70 Standardpakete

PaketBedeutung java.applet - Applet kann als Teil des Browsers arbeiten - kann Eingaben des Benutzers entgegennehmen etc java.awt- Grafikverarbeitung und Aufbau grafischer Schnittstellen java.awt.color- unterschiedliche Systeme zur Beschreibung von Farben java.awt.datatransfer- dient zur Kommunikation mit der Zwischenablage java.awt.dnd- Drag&Drop Aktionen java.awt.event - enthält Ereignismodell java.awt.font - Schriften und einzelne Fonts

java.awt.geom- unterstützt 2D- Geometrie java.awt.im- zur Eingabe von Tasten- Sequenzen, die sich aus mehreren Tastenschlägen zusammensetzen java.awt.image- Verwaltung von Bitmap- Bildern java.awt.print- dient zum Drucken java.beans- ermöglicht JavaBeans- Technologie java.io- Ein- und Ausgabeklassen für Streams und Dateien java.lang - Standard- Features von Java - Sonderklassen, die je einem primitiven Datentyp entsprechen

java.math- Klassen für Zahlen extremer Größe java.net- zur Durchführung von Netzoperationen z.B. URLs java.rmi- dient zur Erstellung verteilter Java-zu-Java –Applikationen java.security- ermöglicht Implementierung von Zertifikaten und digitalen Unterschriften in Java- Komponenten java.sql- Verbindung von Java- Applikationen mit Datenbanken java.text- Formatierung von Objekten wie z.B.: Zahlen String java.util- unterstützt z.B. mit Zufallszahlen, Systemeigenschaften

Neben den Standardpaketen gibt es eine Reihe von Standarderweiterungen, deren Paketname mit javax beginnt. Sie sind nicht unbedingt Bestandteil eines jeden Java- Entwicklungssystems. Sie stellen häufig gebrauchte Erweiterungen zur Verfügung, deren Umfang die reinen Kernbibliotheken um ein Vielfaches übertrifft.

javax.accessibility- erweitert die Funktionalität der Benutzerschnittstellen eines Programms, dass diese von Technologien u. a. Spracherkennung verwendet werden kann javax.swing - Grafische Benutzerschnittstellen - Swing- Komponenten könne automatisch Look and Feel einer Plattform annehmen javax.swing.event- Ereignisse von Swing- Komponenten ausgelöst javax.swing.undo- Unterstützung von Rückgängig- Kommandos

Klassen -und Paketnamen Paketnamen bestehen aus mehreren Komponenten, die jeweils durch einen Punkt voneinander getrennt sind. Jeder Teil des mehrstufigen Paketnamens bezeichnet ein Unterverzeichnis. Nachdem man eine Klasse oder ein Paket importiert hat, kann man sich auf eine Klasse einfach dadurch beziehen, indem man den Namen ohne Paketidentifikation angibt. AUSSER: Wenn mehrere Klassen desselben Namens in unterschiedlichen packages vorhanden sind. In diesem Fall muss man einen Bezug zur betreffenden Klasse anhand des vollständigen Paketnamens einfügen.

Bsp.: importiert werden folgende beiden Pakete von unterschiedlichen Autoren import joeclasses.*; import eleanorsclasses.*; Innerhalb beider Pakete gibt es die Klasse Name mit einer jeweilig anderen Bedeutung. Wenn man folgendes eingibt, ist unklar, auf welche Klasse Name sich bezogen werden soll: Name myName = new Name(Susan); Deshalb wird der vollständige Paketname eingefügt: joeclasses.Name myName = new joeclasses.Name (Susan); um Dopelungen bei Paketnamen zu vermeiden, ist das Domain- Namen- System zu empfehlen, da Domain-Namen weltweit eindeutig sind beim Paketnamen wird Domainname in umgekehrter Reihenfolge benutzt z.B. de.tfh-berlin Unterhalb des Basispaketes können Unterpakete beliebig geschachtelt werden z.B. de.tfh-berlin.math3.dvg3

Einbinden zusätzlicher packages in der Praxis Verwendung von Paketen von Drittanbietern um die Klassenpfade so kurz wie möglich zu halten, ist es günstig Pakete in ein gemeinsames Unterverzeichnis zu legen Vorgehensweise 1. anlegen eines Verzeichnisses z.B. H:\classes oder Verzeichnis de, ein Verzeichnis tfh-berlin in de etc. 2. abspeichern aller Pakete dies funktioniert nur wenn Anbieter ihre Klassendateien in Pakete ablegen wenn dies nicht geschehen ist, empfiehlt es sich die Klassen durch package- Anweisung Paketen zuzuordnen

3. Classpath setzen set CLASSPATH ==H:\classes man muss diesen setzen damit Java Klassen findet, denn ansonsten gibt der Compiler eine Fehlermeldung aus ( die meisten Fehlermeldungen für nicht ladbare Klassendateien werden durch nicht vorhandene classpath- Variablen erzeugt)

Das public- Attribut Klassen verfügen über Paketschutz, d.h eine Klasse steht auch allen anderen Klassen im Paket zur Verfügung, aber außerhalb nicht zu sehen oder verfügbar wenn Klassen auch außerhalb des betreffenden Paketes zur Verfügung stehen sollen, muss man sie mit öffentlichen Schutz versehen--- das Attribut public wenn Klassen aus externen Paketen nicht public, bricht der Compiler die Übersetzung mit einer Fehlermeldung ab bei import- Anweisung mit * werden lediglich öffentliche Klassen importiert Warum soll Klasse verborgen bleiben? damit Hilfsklassen und Verhalten zur Verfügung stehen, die ausschließlich für die Implementierung notwendig sind

Erstellen eigener Pakete Um eine Klasse einem ganz bestimmten Paket zuzuordnen, muss am Anfang des Quelltextes die package- Anweisung stehen. package paketname; Da der Compiler eingebundene Quelldateien, die noch nicht übersetzt sind, während der Übersetzung einer anderen Klasse automatisch mitübersetzt, ist die Erstellung sehr einfach. Bei Editplus folgt nach dem …javac.exe zunächst das Zielverzeichnis, dann der classpath und zum Schluß der sourcepath z.B. …javac.exe –d H:/classes –classpath H:/classes –sourcepath H:/emma301 und hinter java.exe folgt nur der classpath

zur Dokumentation der Pakete mit javadoc fügt man Ende hinzu javadoc classpath.\classes Namen der Pakete javadoc -d docs -link "file://c:/jdk1.3.1/docs/api" -sourcepath.\src // Quellenpfad -classpath.\classes //Klassenpfad src\ApplicationEMMA301Paint.java // ausführende Datei (Quelle) emma301 emma301.comp //Pakete mit Klassen emma301.rect emma301.point emma301.mpoint emma301.utils

emma301 utils rect comp mpoint point emma301- AbstractGraphicalObject - BasicStrokeChooser - FontChooser - GraphicalObject - PaintChooser - PointChooser - EMMA301Paint - EMMA301PaintFRame rect- Line - Oval - Rectangle - RectangularGraphicalObject comp- Layer - Picture - CompsedGraphicalObject mpoint- Polygon - Polyline - PunktWolke - MultiPointGraphicalObject point - EMMA301Dot - EMMA301Point - EMMA301PointCircle - EMMA301PointCross - EMMÁ301PointGeneral - EMMA301PointSquare - OnePoint utils- EMMA301Utils