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

Ähnliche Dokumente
7. Pakete Grundlagen der Programmierung 1 (Java)

Rekursion. Was heißt "rekursiv" Page 1. Eine Methode m() heißt rekursiv, wenn sie sich selbst aufruft. Beispiel: Berechnung der Fakultät (n!

8. Generics Grundlagen der Programmierung 1 (Java)

Java Einführung Packages

Einstieg in die Informatik mit Java

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Einführung in Javadoc

Objektorientierte Programmierung. Kapitel 16: Pakete, Zugriffsschutz

Konstruktoren, Packages und Scopes

Java Einführung Abstrakte Klassen und Interfaces

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

Programmieren in Java

1. Zeilenendkommentare: // geklammerte Kommentare: /*... */ 3. Dokumentationskommentare: /**... */

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Objekt-Orientierte Programmierung

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

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

Praktische Softwaretechnologie Vorlesung 3

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Einführung in die. objektorientierte Programmierung

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

Repetitorium Informatik (Java)

AuD-Tafelübung T-B5b

II.1.1. Erste Schritte - 1 -

Innere Klassen in Java

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

Programmierkurs Java

Repetitorium Informatik (Java)

Programmieren in Java

1 Polymorphie (Vielgestaltigkeit)

Vorlesung Informatik II

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

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

Java für C++ Programmierer

4. Objektorientierung I Grundlagen der Programmierung 1 (Java)

Java Einführung Methoden in Klassen

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe

Programmierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung

Einführung in die Informatik Tools

Liste Programmieren Java Überblick

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

Modularisierung. Modularisierung. 1 von 21

Einführung in die Programmierung Blockkurs Java

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Schnittstellen implementieren am Beispiel Suchbaum

Programmieren I. Kapitel 15. Ein und Ausgabe

Handbuch für die Erweiterbarkeit

Session 1: Classes and Applets

5.5.8 Öffentliche und private Eigenschaften

Schritt 1 - Ein Spielfeld

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

3. Grundlegende Sprachkonstruktionen imperativer Programme

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Java Beans. von Raoul Schneider

Erste Schritte in Java

Tutorium Java Ein Überblick. Helge Janicke

Datenbankanwendungsprogrammierung Crashkurs Java

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

0. Einführung & Motivation

Vorlesung Programmieren

1.3 Welche Schritte werden bei der Programmerstellung benötigt? 1.5 Was sind Variablen im Kontext der Programmierung?

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Einführung in die Programmierung

Algorithmen und Datenstrukturen

Wie ich lernte die API zu lieben. 19. März sic[!]sec GmbH Industriestraße Gröbenzell

Theorie zu Übung 8 Implementierung in Java

Vorlesung Programmieren

Information und Wissen

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Java Einführung Methoden. Kapitel 6

Faustregeln zu Zusicherungen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Um nicht immer den Strukturnamen verwenden zu müssen, kann man auch alle Definitionen einer Struktur auf einmal sichtbar machen:

Programmieren I. Kapitel 8. Vererbung

Programmieren 2 Selbststudium Semesterwoche 6

6 Speicherorganisation

Java - Programmierung - Objektorientierte Programmierung 1

Objektorientierte Programmierung. Kapitel 12: Interfaces

Teil V. Generics und Kollektionen in Java

Neue Features in C# 2.0

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Javakurs 2013 Objektorientierung

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

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

Probeklausur: Programmierung WS04/05

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

(H ist Entropie) bei Redundanz Information vielleicht mehrfach. Redundanz zur Fehlererkennung und -korrektur nutzbar

Einführung in die Programmierung mit Java

Programmentwicklung ohne BlueJ

10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.

Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

Angewandte IT-Sicherheit

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

Referat: Netzwerkprogrammierung in Java

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Transkript:

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

Idee Paket = Sammlung zusammengehöriger Klassen (Bibliothek) Zweck mehr Ordnung in Programme bringen bessere Kontrolle der Zugriffsrechte (wer darf auf was zugreifen) Vermeidung von Namenskonflikten Beispiele für Pakete in der Java-Klassenbibliothek Paket enthaltene Klassen java.lang System, String, Integer, Character, Object, Math, java.io File, InputStream, OutputStream, Reader, Writer, java.awt Button, CheckBox, Frame, Color, Cursor, Event, java.util ArrayList, Hashtable, BitSet, Stack, Vector, Random, siehe: http://docs.oracle.com/javase/7/docs/api/ 2

Anlegen von Paketen Datei Circle.java package graphics; class Circle { Datei Rectangle.java package graphics; class Rectangle { 1. Zeile der Datei Paket graphics enthält die Klassen Circle und Rectangle Circle Felder Methoden Rectangle Felder Methoden Paket graphics Wenn package-zeile fehlt, gehören die Klassen zu einem namenlosem Standardpaket 3

Pakete als Sichtbarkeitsgrenzen Was in einem Paket deklariert ist, ist in anderen Paketen unsichtbar package one; class C { class D { package two; class D { C obj; Compiler meldet einen Fehler! C ist hier unsichtbar gleicher Name stört nicht Zweck In verschiedenen Paketen können gleiche Namen verwendet werden Programmierer müssen nicht Rücksicht nehmen, welche Namen schon woanders verwendet wurden 4

Export von Namen Namen können mit dem Zusatz public exportiert werden (sie sind dann in anderen Paketen sichtbar) auch in anderen Paketen sichtbar package one; public class C { int x; public int y; void p() { public void q() { C () { public C (int x, int y) { class D { nur in diesem Paket sichtbar public-felder und -Methoden werden nur dann exportiert, wenn die Klasse selbst public ist. Lokale Variablen und Parameter können nicht exportiert werden. 5

Import von Klassennamen Exportierte Klassennamen können in anderen Paketen importiert werden Durch gezielten Import der Klasse package mypack; import graphics.circle; import one.c; class MyClass { Circle c; Durch Qualifikation mit dem Paketnamen package mypack; class MyClass { graphics.circle c1; java.awt.circle c2; Durch Import aller public-klassen eines Pakets package mypack; import graphics.*; class MyClass { Circle c; Rectangle r; 6

Pakete und Verzeichnisse Pakete werden auf Verzeichnisse abgebildet, Klassen auf Dateien Klasse C Datei C.java Paket P Verzeichnis P Samples package P; class A { Paket P package P; class B { package P; class C { P A.java B.java C.java Übersetzung und Ausführung mit dem JDK cd C:\Samples javac P/A.java java P/A java P.A beides möglich 7

Geschachtelte Pakete Pakete können zu größeren Paketen zusammengefasst werden samples package samples.graphics; public class Circle package samples.graphics; public class Rectangle graphics samples io package samples.io; public class Input package samples.io; public class Output graphics Circle.java Rectangle.java io Input.java Output.java Benutzung import samples.graphics.circle; import samples.graphics.* import samples.*; samples.io.output out; importiert die Klasse Circle importiert alle public-klassen aus samples.graphics importiert alle public-klassen aus samples (nicht aus samples.graphics) Qualifikation einer Klasse aus einem geschachtelten Paket 8

Information Hiding (Geheimnisprinzip) Prinzip Verstecke die Implementierung komplexer Datenstrukturen vor Benutzern Erlaube den Zugriff auf die Daten nur über Methoden push pop Zugriffsmethoden (Klassenschnittstelle) Daten "Black Box" Warum? Klasse Stack Verringert die Komplexität (Arbeiten mit den Daten wird einfacher) Implementierung der Daten kann geändert werden, ohne dass Benutzer etwas merken Schutz vor mutwilliger oder unabsichtlicher Zerstörung push pop 9

Sichtbarkeitsattribute für Felder und Methoden private int a; nur in der Klasse sichtbar, in der das Element deklariert wurde int b; nur im Paket sichtbar, in dem das Element deklariert wurde protected int c; sichtbar: - in der deklarierenden Klasse - in deren Unterklassen (selbst wenn sie in anderen Paketen liegen) - im deklarierenden Paket public int d; auch in anderen Paketen sichtbar, wenn importiert package one; a public class C { private int a; int b; protected int c; public int d; public class D { b c d package two; import one.c; public class E extends C { C x = new C(); x.a = ; x.b = ; x.c = ; x.d = ; public class F { c d 10

Beispiel: Stack mit Information Hiding public class Stack { private int[] data; private int top; public Stack (int size) { data = new int[size]; top = -1; public void push (int x) { if (top >= data.length) error("stack overflow"); else data[++top] = x; public int pop () { if (top < 0) error("stack underflow"); else return data[top--]; private void error (String msg) { Out.println(msg); System.exit(0); Klassenschnittstelle Stack Stack() push(int x) pop(): int 11

Dokumentationskommentare Dokumentationskommentare /** */ können vor die Deklarationen von Klassen, Methoden, Feldern gesetzt werden. Werkzeug javadoc erzeugt daraus Dokumentation in HTML /** A stack of integers. This is a FIFO data structure storing integers in a stack-like way. */ public class Stack { /** The elements in the stack. */ private int[] data; /** Push an integer on the stack. If the stack is full an error is reported and the program stops. */ public void push (int x) { 1. Satz bis Punkt wird in Kurzdoku übernommen Rest wird in Langdoku übernommen 12

Erzeugte HTML-Datei (Stack.html) 13

javadoc Aufrufsyntax Optionen javadoc [options] {filename packagename -public -private -d path zeigt nur public-deklarationen zeigt public- und private-deklarationen Zielverzeichnis, in das HTML-Dateien gespeichert werden Beispiel javadoc -public Stack.java erzeugt: Stack.html diverse andere Übersichtsdateien Vollständige Dokumentation von javadoc http://java.sun.com/j2se/javadoc/ 14