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

Ähnliche Dokumente
10. Pakete. Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek.

Aufbau einer typischen Java-Datei

Einführung in die Programmierung

Java Einführung Packages

Pakete Software Entwicklung 1

Zugriffsrechte und Packages

10. Pakete Einführung in die Programmierung (fbw) Sommersemester 2007 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Assoziationen. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 05: Assoziationen und Pakete. Inhalt. Assoziationen.

7. Pakete Grundlagen der Programmierung 1 (Java)

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Assoziationen. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 05: Assoziationen und Pakete. Inhalt. Assoziationen.

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Programmieren 2 Java Überblick

Programmierkurs Java

Liste Programmieren Java Überblick

Autoboxing - Nachtrag

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz

TIAI1004: Programmierung

Modularisierung. Modularisierung. 1 von 21

TIAI1004: Programmierung

Einstieg in die Informatik mit Java

Einführung in Javadoc

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Bibliotheken (Java API)

Vorwort 15. Kapitel 1 Einleitung 19. Ein Blick auf die Entwicklungstools und erste Beispiele 39

Objekt-Orientierte Programmierung

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Praktikum Softwareentwicklung 2

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Objekt-Orientierte Programmierung

Kurzanleitung zu XML2DB

Einführung in die Programmierung mit Java

Praktikum 1: Einführung, BMI Rechner

WEB KOMPLETT. Jens Gallenbacher BIBLIOTHEK. Computer & Literatur Verlag GmbH. Technische Universität Darmstadt FACHBEREICH INFORMATIK

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

STRUKTURIERUNG VON PROGRAMMEN

Klassen in Java. Grundlagen der Programmierung. Stephan Kleuker 68

Swing : Komponeneten I (Teil 1) Was ist Swing?

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Vorlesung Informatik II

Serie 3: Designbeschreibung Verantwortlich für Rose-Projekt und Designbeschreibungen Dang, Quoc Anh / Phan, Ngoc Diep / Xiongjie Ding

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Java I Vorlesung Generics und Packages

To know recursion, you must first know recursion. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 17 1

Praktikum Softwareentwicklung 2

GEONET Anleitung für Web-Autoren

Einführung in die Programmierung Blockkurs Java

Inhaltsverzeichnis 1 Einführung Die Software JGIS Grundlagen raumbezogener Daten

Kurs OPR. Objektorientierte Programmierung

Überschreiben von Methoden

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Kapitel 18: Java ein paar Kleinigkeiten zum Schluss. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Grundlagen von JAVA Hello World in JAVA Elementare Datentypen. Grundlagen von JAVA Hello World in JAVA Elementare Datentypen

CS1005 Objektorientierte Programmierung

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Kurzanleitung zur Verwendung der Java-IDE NetBeans (1)

Java RMI Remote Method Invocation

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl

Arbeitsblatt 5 EAD II NetBeans

2 Eine einfache Programmiersprache

Java lernen mit BlueJ

Praktikum Softwareentwicklung 2

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Objektorientierte Programmierung. Kapitel 15: Quelldateien, Pakete, Zugriffsschutz

Einstieg in die Informatik mit Java

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Übersicht. Informatik 2 Teil 1 Objektorientiertes Programmieren und Grundlagen von Java

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

GUI Programmierung mit JAVA Swing

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Baugruppen Teilefamilie

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung. Kapitel 1 Objekte und Klassen Objekte und Klassen Instanzen erzeugen Methoden aufrufen

II.1.1. Erste Schritte - 1 -

Erweiterung InfoVis:Wiki

Institut für Programmierung und Reaktive Systeme 7. Juli Programmieren II. Übungsklausur

Vgl. Oestereich Kap 2.4 Seiten

Einführung in das Programmieren

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Konzepte objektorientierter Programmierung

Einstieg in die Informatik mit Java

Überblick. Java 5. Java 6. Java 7. Referenzen. neue Sprachfeatures Erweiterungen Klassenbibliothek. Erweiterungen Klassenbibliothek

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Methoden und Wrapperklassen

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

1 Was ist ein Portfolio? Ein Portfolio anlegen... 4

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

Verteilte Systeme - Java Networking (Sockets) -

Innere Klassen in Java

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4

Transkript:

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

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. 2. - 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 1.0 8 Standardpakete JDK 1.1 22 Standardpakete JDK 1.2 über 50 Standardpakete JDK 1.3 über 70 Standardpakete

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

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

java.math java.net java.rmi java.security java.sql java.text java.util - Klassen für Zahlen extremer Größe - zur Durchführung von Netzoperationen z.b. URL s - dient zur Erstellung verteilter Java-zu-Java Applikationen - ermöglicht Implementierung von Zertifikaten und digitalen Unterschriften in Java- Komponenten - Verbindung von Java- Applikationen mit Datenbanken - Formatierung von Objekten wie z.b.: Zahlen String - 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 javax.swing javax.swing.event javax.swing.undo - erweitert die Funktionalität der Benutzerschnittstellen eines Programms, dass diese von Technologien u. a. Spracherkennung verwendet werden kann -Grafische Benutzerschnittstellen - Swing- Komponenten könne automatisch Look and Feel einer Plattform annehmen - Ereignisse von Swing- Komponenten ausgelöst - 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 manmussdiesensetzendamitjava 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 rect comp mpoint point utils - AbstractGraphicalObject - BasicStrokeChooser - FontChooser -GraphicalObject - PaintChooser - PointChooser - EMMA301Paint - EMMA301PaintFRame - Line - Oval - Rectangle - RectangularGraphicalObject -Layer - Polygon - Polyline - PunktWolke - MultiPointGraphicalObject - EMMA301Dot - EMMA301Point - EMMA301PointCircle - EMMA301PointCross - EMMÁ301PointGeneral - EMMA301PointSquare -OnePoint - EMMA301Utils -Picture - CompsedGraphicalObject emma301 utils rect comp mpoint point