Objektorientierte Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
Imperative Programmierung
der Universität Oldenburg
Imperative Programmierung
der Universität Oldenburg
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Kapselung , toString , equals , Java API
der Universität Oldenburg
der Universität Oldenburg
Imperative Programmierung -Entwicklungswerkzeuge
Objektorientierte Programmierung Definition von Klassen
der Universität Oldenburg
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Motivation Richard Göbel.
Java: Referenzen und Zeichenketten
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.
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung X1 Sitzung X1: Packages & Wiederholung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Imperative Programmierung Funktionen und Parameter
Imperative Programmierung
Objektorientierte Programmierung JDK-Klassenbibliothek
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
Vererbung Spezialisierung von Klassen in JAVA möglich durch
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 Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Das Java-Hamstermodell
Packages Vortrag : Cornelia Hardt 23. November 1999.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
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.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Packages in Java Vortrag: Melanie Reichel und Anja Weiß
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.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einführung in die Programmiersprache Java
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Objektorientiertes Konstruieren
EPROG Tutorium #6 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Java-Kurs Übung Besprechung der Hausaufgabe
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.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Das IT - Informationssystem
 Präsentation transkript:

Objektorientierte Programmierung Programmierkurs Java Teil Objektorientierte Programmierung Unterrichtseinheit 28 Pakete Dr. Dietrich Boles

Gliederung Motivation Definition von Paketen Nutzung von Paketen Statischer Import CLASSPATH jar Umgang mit Paketen Pakete in Eclipse Zusammenfassung

Motivation Im Allgemeinen bestehen Programme aus vielen, vielen Klassen bestimmte Programmteile (Klassen) werden häufig gebraucht ( Speicher) im Allgemeinen sogar in verschiedenen Anwendungen im Allgemeinen sogar von unterschiedlichen Programmierern gesucht: Hilfsmittel, das es einem Programmierer erlaubt, seine Klassen übersichtlich und strukturiert abspeichern und verwalten zu können Hilfsmittel, das es einem Programmierer erlaubt, von ihm erstellte Klassen für mehrere Anwendungen nutzen zu können bzw. auch anderen Programmierern zur Verfügung stellen zu können Java:  Pakete (Packages) Klassenbibliothek: Sammlung von nützlichen, häufig gebrauchten Klassen, die (anderen) Programmierern zur Verfügung gestellt werden Java-Packages: Hilfsmittel zur Strukturierung von Klassenbibliotheken

Definition von Paketen (1) Schlüsselwort: package package-Anweisung: package <paketname>; Beispiel: Datei: SchachBrett.java Datei: SchachFigur.java Datei: SchachSpieler.java Datei: SchachRegeln.java Datei: SchachSpielzug.java  Paket: schach in jeder der obigen Dateien muss als erste Anweisung (!!!!) die folgende package-Anweisung stehen: package schach; Voraussetzung: Bereitgestellte Klassen und Methoden müssen als public deklariert sein (siehe auch UE 30)

Definition von Paketen (2) Datei: SchachBrett.java package schach; public class SchachBrett { ... } Datei: SchachFigur.java public class SchachFigur { Datei: SchachSpieler.java package schach; public class SchachSpieler{ ... } Datei: SchachRegeln.java public class SchachRegeln {

Definition von Paketen (3) Anmerkungen: Der Paketname ist ein Java-Bezeichner Die Dateien/Klassen eines Paketes müssen sich alle in demselben Verzeichnis befinden! In einem Verzeichnis kann nur ein einziges Paket definiert werden! Der Name eines Verzeichnisses, in dem ein Paket definiert wird, muss gleich dem Namen des Paketes sein! Wird in einem Paket X eine Klasse Y definiert, so lautet der vollständige Name der Klasse X.Y Pakete lassen sich strukturieren (Punkt-Notation verwenden!) Strukturierung: Verzeichnisstruktur: Pakete - Spiele spiele package spiele; - Reversi spiele/reversi package spiele.reversi; - dame spiele/dame package spiele.dame; - Schach spiele/schach package spiele.schach;

Nutzung von Paketen (1) Schlüsselwort: import import-Anweisung: import <paket-qualifier>; Mehrere import-Anweisungen möglich Import-Anweisungen müssen hinter einer evtl. vorhandenen package-Anweisung, aber vor dem Rest des Programms stehen Es bestehen vier verschiedene Möglichkeiten, Dateien/Klassen zu importieren bzw. auf die Elemente der Dateien/Klassen zuzugreifen: kein expliziter Import Import einzelner Dateien/Klassen des Paketes Import des Paketes Import aller Dateien/Klassen des Paketes Beispiel: Paket: java.util Datei/Klasse: Date Datei/Klasse: Stack Datei/Klasse: Vector

Nutzung von Paketen (2) kein expliziter Import (Zugriff über vollständigen Namen) // kein import ... java.util.Date date = new java.util.Date(); java.util.Vector vector = new java.util.Vector(); Import einzelner Dateien/Klassen des Paketes (empfohlen!): import java.util.Date; Date date = new Date(); Vector vector = new Vector(); // Fehler!

Nutzung von Paketen (3) Import aller Dateien/Klassen des Paketes (nicht der Unterpakete!): import java.util.*; ... Date date = new Date(); Vector vector = new Vector(); Import des Paketes (unüblich): import java.util; util.Date date = new util.Date(); util.Vector vector = new util.Vector();

Nutzung von Paketen (4) Namenskonflikte (Beispiel): eigenes Programm: package util;  class Vector package misc;  class Vector eigenes Programm: import util.*; import misc.*; ... Vector v = new Vector(); //Fehler: welcher Vector? // korrekt (Zugriff über vollständigen Namen): util.Vector v1 = new util.Vector(); misc.Vector v2 = new misc.Vector();

Nutzung von Paketen (5) JDK-Paket: java.lang Datei/Klasse: System Datei/Klasse: Object Datei/Klasse: String ...  import-Anweisung ist nicht notwendig (implizites import) Anonyme Pakete: Fehlt in Dateien eines Verzeichnisses die package-Anweisung, dann bilden die Dateien ein so genanntes "anonymes Paket" der Zugriff auf die Elemente eines anonymen Paketes ist ausschließlich auf Dateien im selben Verzeichnis (also Dateien/Klassen des anonymen Paketes selbst) beschränkt!

Statischer Import Zugriff auf statische Elemente einer Klasse: <Klassenname>.<Elementname> Statischer Import (ab Java 5.0): import static <vollständiger Elementname>; Zugriff: <Elementname> Beispiel: import static java.lang.Math.sin; import static java.lang.Math.PI; ... System.out.println(sin(PI)); //System.out.println(Math.sin(Math.PI));

CLASSPATH (1) CLASSPATH: Variable der Betriebssystem-Shell UNIX: Setzen: csh: setenv CLASSPATH ".:/user/fb10/dibo/java" bash: export CLASSPATH=.:/user/fb10/dibo/java Abfrage: echo $CLASSPATH Windows: set CLASSPATH=.;e:\java Abfrage: echo %CLASSPATH%

CLASSPATH (2) wichtig: In den CLASSPATH müssen die Verzeichnisse (bzw. zip- oder jar-Dateien) aufgenommen werden, in denen der Java-Compiler und -Interpreter nach Paketen suchen soll Trennung mehrerer Verzeichnisse durch einen Doppelpunkt (:) unter UNIX bzw. durch Semikolon (;) unter Windows Der Punkt (.) ist wichtig für anonyme Pakete Das Verzeichnis, in welchem sich die JDK-Klassenbibliothek befindet, muss nicht im CLASSPATH vorhanden sein

CLASSPATH (3) Beispiel: Im Verzeichnis /languages/java gibt es ein Paket namens einaus (Unterverzeichnis einaus), welches die Datei/Klasse IO enthält und ein Paket names spiele.schach (Unterverzeichnis spiele/schach), welches u.a. die Dateien/Klassen SchachSpieler und SchachSpielzug enthält. Sie wollen die Pakete zur Implementierung einer Klasse MySchach nutzen: Datei: MySchach.java (im Verzeichnis /user/kai/java) import einaus.*;  Zugriff auf Klasse IO import spiele.schach.*;  Zugriff auf SchachSpieler,… public class MySchach extends SchachSpieler { ... } export CLASSPATH=.:/languages/java Compilieren: javac MySchach.java Ausführen: java MySchach

CLASSPATH (4) Leicht modifiziertes Beispiel: dieselben Voraussetzungen, nur Sie wollen ein eigenes Paket definieren: Datei: MySchach.java (im Verzeichnis /user/kai/java/kschach) package kschach; import einaus.*;  Zugriff auf Klasse Terminal import spiele.schach.*;  Zugriff auf SchachSpieler, ... public class MySchach extends Schachspieler { ... } export CLASSPATH=.:/languages/java:/user/kai/java Compilieren: javac MySchach.java Ausführen: java kschach.MySchach (von wo aus, ist egal!) Vollständiger Klassenname Achtung: alle Verzeichnisse und class-Dateien müssen lesbar sein !

jar jar: Java-Hilfsprogramm zum Packen und Komprimieren von Java- Dateien Entpacken: jar xvf hamstersimulator.jar Packen: jar cvf simulator.jar *.class hamster\*.class Executable jar: spezielle ausführbare jar-Datei (Doppelklick) mit Informationen über die aufzurufende main-Funktion

Umgang mit Paketen Demo

Pakete in Eclipse Demo

Zusammenfassung Java-Pakete: Hilfsmittel zur Strukturierung von Klassenbibliotheken Klassenbibliothek: Sammlung von nützlichen, häufig gebrauchten Klassen, die (anderen) Programmierern zur Verfügung gestellt werden CLASSPATH: In den CLASSPATH müssen die Verzeichnisse (bzw. zip- oder jar-Dateien) aufgenommen werden, in denen der Java-Compiler und -Interpreter nach Paketen suchen soll jar: Java-Hilfsprogramm zum Packen und Komprimieren von Java-Dateien (insbesondere Klassenbibliotheken)