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

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

Abschnitt 12: Strukturierung von Java-Programmen: Packages

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

7. Pakete Grundlagen der Programmierung 1 (Java)

Java Einführung Packages

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Geschachtelte Klassen

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

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

Einstieg in die Informatik mit Java

Kurs OPR. Objektorientierte Programmierung

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Programmieren in Java

Einstieg in die Informatik mit Java

Geschachtelte Klassen

Modularisierung. Modularisierung. 1 von 21

Arten von Klassen-Beziehungen

Einstieg in die Informatik mit Java

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

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

Objekt-Orientierte Programmierung

Aufbau einer typischen Java-Datei

Objekt-Orientierte Programmierung

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

Einstieg in die Informatik mit Java

CS1005 Objektorientierte Programmierung

3 Objektorientierte Konzepte in Java

Einstieg in die Informatik mit Java

Programmieren in Java

Faustregeln zu Zusicherungen

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

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

Konstruktoren, Packages und Scopes

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

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

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

Bibliotheken (Java API)

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Grundlagen der Programmierung Teil1 Einheit IV Okt. 2009

Programmierkurs Java

1. In welchen Formen (mindestens zwei) kann man durch das Ersetzbarkeitsprinzip Wiederverwendung erzielen?

Übungen Informatik I. JAVA - Einführung. elga Gabler, Holger Vogelsang, Christian Pape. Übungen Informatik 1 Folie 1

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

2 Vererbung in Java. 1 Vererbung in der echten Welt. 3 Unterklassen

Java für C++ Programmierer

Repetitorium Informatik (Java)

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java Historisches Eigenschaften von Java

5.6 Vererbung. Vererbung

Einführung in die Programmierung Blockkurs Java

Entwicklungsrichtlinien. 6. Mai 2015

Java - Klassen und Objekte

Kurzanleitung zur Verwendung der Java-IDE NetBeans (1)

MotorBoot. - leistung: int - geschwindigkeit: int - ankeranzahl: int - satellitennavigation: boolean - radar: boolean

1 Abstrakte Klassen, finale Klassen und Interfaces

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

1. Der Einstieg in Java. Was heißt Programmieren?

Teil 2: Objektorientierte Programmierung 2.3 Modularisierung Prof. Dr. Max Mühlhäuser FG Telekooperation TU-Darmstadt

1. Der Einstieg in Java

Dr. Monika Meiler. Inhalt

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

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Algorithmen und Datenstrukturen 06

5.5.8 Öffentliche und private Eigenschaften

JAVA - Methoden

4. Objektorientierte Programmierung

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Java Einführung Methoden in Klassen

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

1.5 Programmstruktur

Kapitel 4: Klassen und Unterklassen

Javakurs 2013 Objektorientierung

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Klassen mit Instanzmethoden

Vorlesung Programmieren

Einführung in die Informatik 1

Programmierung und Angewandte Mathematik

Java Schulung (Java 2 Java Development Kit 5 / 6)

Datenbankanwendungsprogrammierung Crashkurs Java

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

3 Objektorientierte Konzepte in Java

1. Abstrakte Klassen

Java I Vorlesung Vererbung und Sichtbarkeit

Java Einführung Abstrakte Klassen und Interfaces

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

Klassen und Objekte. Objekte einer Klasse bilden

Vgl. Oestereich Kap 2.4 Seiten

Theorie zu Übung 8 Implementierung in Java

5. Abstrakte Klassen

Transkript:

10. Pakete Grundlagen zu Paketen 10. Pakete Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek. Beispiele: java.lang: Standardklassen zur Sprache Java java.net: Klassen zur Netzwerkprogrammierung java.io: Klassen für die Ein- und Ausgabe von Daten java.awt: Klassen für graphische Oberflächen (Abstract Window Toolkit) Pakete haben einen Namen, den Paketnamen. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 236

10. Pakete Grundlagen zu Paketen Vorteile von Paketen Pakete bilden eigene Bereiche für die Sichtbarkeit. Dadurch kann mit Paketen eine Datenkapselung erreicht werden. Jedes Paket bildet einen eigenen Namensraum. Damit können Namenskonflikte vermieden werden und identische Namen für Klassen in verschiedenen Paketen vergeben werden. Pakete sind gröbere Einheiten für die Strukturierung von objektorientierten Systemen als Klassen. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 237

10. Pakete Benutzung von Paketen Nutzung von Klassen aus Paketen (1) Für die Nutzung von Klassen aus Paketen gibt es zwei Möglichkeiten: volle Qualifikation: Paket und Klassenname werden angegeben: java.awt.point p = new java.awt.point(); Deklaration mit Hilfe von import: Es wird einmal angegeben, aus welchen Paketen Klassen importiert werden: import java.awt.point; Point p = new Point(); Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 238

10. Pakete Benutzung von Paketen Nutzung von Klassen aus Paketen (2) Um nicht alle Klassen eines Paketes einzeln angeben zu müssen, besteht die Möglichkeit, mit Hilfe des * alle Klassen zu importieren. Die Anweisung import java.awt.*; importiert alle Klassen aus dem Paket java.awt. import steht zwischen einer optionalen package-deklaration und dem Rest des Quelltextes. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 239

10. Pakete Benutzung von Paketen Nutzung von Klassen aus Paketen (3) Das Paket java.lang wird immer automatisch importiert. Sollten Klassen mit gleichem Namen aus verschiedenen Paketen importiert werden, muss eine volle Qualifikation erfolgen. Auch Pakete können hierarchisch strukturiert werden (Unterpakete). import bezieht die Unterpakete nicht automatisch mit ein! import java.awt.*; import java.awt.geom.*; Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 240

10. Pakete Benutzung von Paketen Statischer Import Klassenmethoden bzw. Konstanten werden über den Methodennamen (bzw. Konstantennamen) in Verbindung mit dem Klassennamen angesprochen. double x = Math.sin( Math.PI/4 ); Seit Java 5 können Klassenmethoden und Konstanten statisch importiert werden: import static java.lang.math.sin; import static java.lang.math.pi; double x = sin( PI/4 ); Auch beim statischen Import ist der Einsatz von * möglich. Ein statischer Import ist auch für überladene Klassenmethoden möglich. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 241

10. Pakete Pakete selber bauen Die package-deklaration Mit Hilfe einer package-deklaration können wir Quelltextteile Paketen zuordnen. package Paketbezeichner; Die package-deklaration muss vor allen anderen Anweisungen im Quelltext stehen. Hinter package wird ein hierarchisch aufgebauter Paketbezeichner als Paketname angegeben. package de.fhbrs.inf.meinpaket; Wirkung: Alle Klassen und Schnittstellendefinitionen der Übersetzungseinheit (.java-datei), werden dem Paket de.fhbrs.inf.meinpaket zugeordnet. Natürlich können auch andere.java-dateien diesem Paket zugeordnet werden. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 242

10. Pakete Pakete selber bauen Paketnamen Für die weltweite Eindeutigkeit: häufig umgedrehte Domainnamen Für die hierarchische Strukturierung ist der Punkt erlaubt. Dagegen ist leider kein in Paketnamen erlaubt. Die Paketnamen java, javax und sun sind reserviert. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 243

10. Pakete Pakete selber bauen Default-Package Was passiert, wenn wir keine package-deklaration angeben? Die Quelltextteile werden einem sogenannten Default-Package zugeordnet. Zu diesem Default-Package gehören alle Übersetzungseinheiten des lokalen Verzeichnisses, die nicht einem Paket zugeordnet sind. Daher müssen wir uns bei kleinen Anwendungen nicht um die Paketorganisation kümmern. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 244

10. Pakete Pakete selber bauen Verzeichnisstruktur für Pakete projekte In der Regel setzen wir für die Entwicklung die Paketstruktur eins zu eins auf eine Dateistruktur um. Verzeichnisse tragen den Paketnamen. lib projekt1 classes projekt2 doc Die zum Paket gehörigen Klassen werden in den entsprechenden Verzeichnissen abgelegt. sub1 paket1 Klasse1 paket2 Klasse2 sub2 Klasse3 Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 245

10. Pakete Pakete selber bauen CLASSPATH Wenn sich nicht alle class-dateien im lokalen Verzeichnis befinden, muss die virtuelle Maschine wissen, wo sie nach class-dateien suchen soll. Hierzu dient die Umgebungsvariable CLASSPATH. Genauer: Im CLASSPATH werden die Verzeichnisse aufgelistet, in denen nach Paketen gesucht wird. Mit CLASSPATH=/projekte/projekt1/classes werden die Klassen paket1.klasse1, paket1.klasse2 und auch paket1.sub1.klasse3 gefunden. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 246

10. Pakete Pakete selber bauen jar-dateien Für die Auslieferung einer Klassenbiblothek ist es einfacher, wenn sich die gesamte Bibliothek in einer Datei befindet, statt in einer losen Sammlung von class- Dateien. Dies ist mit jar-dateien möglich. Eine jar-datei ist eine Zusammenstellung von Dateien in einer einzigen Datei. Erzeugung von jar-dateien: siehe Hinweise auf der Homepage. jar-dateien können im CLASSPATH verwendet werden. $ cd /projekte/projekt1/classes $ jar cf../lib/projekt1.jar paket1 paket2 $ CLASSPATH=/projekte/projekt1/lib/projekt1.jar Damit werden die Klassen aus den Paketen paket1, paket2 und paket1.sub1 gefunden. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 247

10. Pakete Zugriffsmodifikatoren und Zugriffsrechte Verwendung von Zugriffsmodifikatoren Zur Regelung der Zugriffsrechte gibt es in Java die Modifikatoren public, protected und private. Ohne Zugriffsmodifikator besteht das Zugriffsrecht default. Beachten Sie: default ist kein Schlüsselwort. Für Klassen sind die Zugriffsrechte public und default möglich. Für Klassen- bzw. Instanzvariablen und -methoden sind möglich: default, public, protected und private. Variablen und Methoden innerhalb von Schnittstellen sind implizit public. Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 248

10. Pakete Zugriffsmodifikatoren und Zugriffsrechte Zugriffsrechte für Variablen und Methoden private default protected public Klasse A ja ja ja ja Klasse B nein ja ja ja gleiches Paket Subklasse C nein ja ja ja gleiches Paket Klasse D nein nein nein ja anderes Paket Subklasse E nein nein ja/nein ja anderes Paket Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg, SS 08 249