Einführung In Die OOP In Java 6 WS 07/08

8m ago
45 Views
4 Downloads
1.27 MB
119 Pages
Last View : 1m ago
Last Download : 5m ago
Upload by : Ronan Garica
Share:
Transcription

Einführung in die OOP in Java 6WS 07/08Ashraf Abu BakerZuletzt aktualisiert am: 09.06.2008 15:321

Ich bedanke mich bei Igor Geier und Gerold Kühne fürihre Unterstützung bei der Erstellung dieses Begleitmaterials.2

InhaltsverzeichnisInhaltsverzeichnis . 31 Einleitung. 52 Historie . 63 Entwicklung von Java-Programmen . 93.1 Vorbereitung . 93.2 Klassendefinition . 93.3 Kommentare. 103.4 Applikationen vs. Applets. 114 Grundlagen. 124.1 Java-Bezeichner (identifier). 124.2 Variablen und Datentypen . 124.2.1 Deklaration und Initialisierung . 154.2.2 Wrapper-Klassen. 164.2.3 Arithmetik- und Fließkommaprobleme . 164.3 Typkonvertierung und Casting . 184.4 Autoboxing (boxing/unboxing) . 205 Arrays. 205.1 Definition . 215.2 Irreguläre Arrays . 225.3 Zugriff auf Arrays . 236 Kontrollstrukturen . 246.1 if-else. 246.2 switch . 256.3 Schleifen . 266.3.1 while-Schleife . 266.3.2 do while-Schleife . 286.3.3 for-Schleife . 296.3.4 for-each-Schleife . 306.4 break und continue. 317 Grundkonzepte OOP. 347.1 Klassen und Objekte . 347.2 Klassen in Java. 347.3 Methoden und Konstruktoren . 357.4 Überladen von Methoden. 367.5 Vererbung . 387.6 Überschreibung von Methoden. 407.7 Polymorphismus . 418 Java-spezifische Konzepte . 438.1 Referenzen in Java . 438.2 this, super, this() und super() . 448.3 Klassenvariablen (statische Variablen). 458.4 Statische Methoden (Klassenmethoden). 478.5 Die main-Methode . 478.6 Statische Initialisierer. 478.7 Nicht statische Initialisierer . 488.8 Initialisierungsreihenfolge . 488.9 Call-by-reference oder call-by-value? . 503

8.10 Pakete (packages). 518.11 Import. 528.12 Statischer Import. 538.13 Datenkapselung und Modifier . 538.13.1 public. 548.13.2 private . 548.13.3 default . 548.13.4 protected. 548.13.5 final . 579 Abstrakte Klassen und Methoden . 5810 Interfaces. 6110.1 Das Interface Comparable. 6211 Namenskonventionen. 6412 Object, Math und String. 6512.1 Object . 6512.2 Math . 6712.3 String . 6713 Ausnahmen (Exceptions) . 7213.1 Throwable . 7413.2 Ausnahmetypen. 7413.3 Auslösen einer Exception . 7713.4 Weitergabe von Exceptions . 7713.5 Behandlung von mehreren Ausnahmen . 7813.6 finally . 7813.7 Eigene Exception-Klasse deklarieren . 7914 Generics . 8015 Collections (Sammlungen). 8515.1 Listen. 8615.1.1 ArrayList und Vector . 8815.1.2 LinkedList . 8915.2 Mengen (Sets) . 9015.2.1 HashSet . 9015.2.2 LinkedHashSet. 9115.2.3 TreeSet . 9115.3 Tabellen (Maps) . 9215.3.1 HashMap und Hashtable . 9415.3.2 TreeMap . 9415.3.3 LinkedHashMap . 9515.4 Generische Collections . 9615.5 Iteratoren (Iterator). 9716 I/O . 9916.1 Dateien und Verzeichnisse. 9916.2 Wahlfreier Zugriff auf Dateien (RandomAccessFile) . 10216.3 Streams. 10416.3.1 ByteStreams . 10416.3.2 FileReader . 10516.3.3 BufferedReader . 10616.3.4 FileWriter. 10716.3.5 BufferedWriter. 10817 Applets . 10918 AWT/Swing . 1174

1 EinleitungJava ist eine von der Firma Sun Microsystems entwickelte Technologie, die aus einer modernenobjektorientierten Programmiersprache und einer Plattform besteht.Eine Plattform ist eine Hardware- oder Softwareumgebung, in der Programme gestartet und ausgeführtwerden können. In vielen Fällen kann eine Plattform als das Betriebssystem und die darunter liegendeHardware verstanden werden. Zu den bekanntesten Plattformen zählen Microsoft Windows, Linux,Mac OS und Solaris. Die Java-Plattform unterscheidet sich von den meisten Plattformen dadurch, dasssie nur eine Software-Plattform ist, und auf der Spitze einer hardwarebasierten Plattform läuft. Siebesteht aus der Java-API (Java Application Programming Interface) und der Java-VM (Java VirtualMachine).Abbildung 1: Java-PlattformDie Java-API ist eine große Sammlung von Java-Programmen, die in sog. Pakete (packages) aufgeteiltsind. Pakete sind vergleichbar mit Bibliotheken in anderen Programmiersprachen und umfassen u.a.Klassen- und Schnittstellendefinitionen (interfaces).Abbildung 2: Dokumentation zur Java-API5

Die Java-VM ist eine plattformunabhängige Softwareumgebung, die Java-Bytecode interpretiert, inMaschinensprache übersetzt und ausführt. Sie kann als Interpretier- und Ausführungsumgebung fürBytecode verstanden werden. Der Bytecode ist eine Datei, die die Erweiterung „.class“ hat. Sieentsteht, wenn ein Java-Compiler ein Java-Programm kompiliert und übersetzt. Ein Bytecode ist daseinzige Codeformat, das von der virtuellen Maschine interpretiert und ausgeführt werden kann.Abbildung 3: Bytecode/JVMDa Java-Programme von der JVM und nicht direkt von der Hardware ausgeführt werden, sind sieplattformunabhängig.6

2 HistorieDie Geschichte der Java-Plattform begann im Januar 1996 als Sun Microsystems das JavaDevelopment Kit (JDK) 1.0 herausgegeben hat. Dieses JDK bestand aus einer Klassenbibliothek,einem Compiler und einem Interpreter. Die Klassenbibliothek des JDK 1.0 bestand aus lediglich sechsPaketen: java.applet mit den Basisklassen für Applets, java.awt für grafische Oberflächen, java.io mitI/O-Funktionen, java.lang, das den Kern der Sprache bildet, java.net mit Klassen zurNetzwerkkommunikation sowie java.util mit nützlichen Hilfsklassen.1997 trennte Sun den Interpreter vom JDK und gab eine neue Version (1.1) des JDK und eineLaufzeitumgebung (Java Runtime Environment (JRE)) heraus. Die JRE enthält alle zum Ausführenvon Programmen notwendigen Werkzeuge.Neu in dieser Version war die Entwicklung der Remote Methode Invocation (RMI), die Java DatabaseConnectivity (JDBC) und das AWT. Die RMI ist eine Schnittstelle, die eine einfache Verteilung vonJava-Programmen erlaubt. JDBC ist eine Schnittstelle zum Datenbankzugriff. Das AWT ist eineBibliothek zur Gestaltung von graphischen Oberflächen.Da das AWT viele Probleme mit sich brachte, entwickelte Sun 1998 eine neue API zur Erstellung vongraphischen Oberflächen namens Swing und gab damit die Version 1.2 cles/RoadMaps/Features/Im Jahre 2000 brachte Sun die Version 1.3 auf den Markt, die u.a. das Servlet Development Kit und dieHotSpot Virtual Machine enthielt. Servlets sind Java-Programme, die in einem Web-Server laufen undWeb-Seiten dynamisch tes/features.html2002 wurde Version 1.4 herausgegeben. Zu den wichtigsten funktionalen Erweiterungen dieserVersion zählen die API für XML-Processing und eine neue API für schnelle I/O-Zugriffe auf es/features.htmlIm JDK 1.5 vom Jahre 2004 wurde die Syntax der Programmiersprache erweitert und neue wichtigeKonzepte wie Generics, Boxing/Unboxing sowie Aufzählungstypen und Annotationen lnotes/features.htmlDie aktuellste Version des JDK, auf die sich diese Einführung bezieht, ist die Version 1.6. Sie wurdeEnde 2006 herausgegeben und brachte viele Neuerungen in den Bereichen Web Services, Sicherheit,Datenbanken, etc. gegenüber ihrer Vorgängerversion mit sich. Darüber hinaus bietet sie zahlreicheKlassen zum Einbetten von Skripten in Skriptsprachen wie Articles/J2SE/Desktop/javase6/beta2.htm7

210ca. 061.62023777Neue FeaturesApplets, AWT, I/O, NetRMI, JDBC, Swing, IDL,Collections, CORBA ORB, Sound,JNDI, Servlets XML Processing, JNI, Generics, Enhanced forLoop, Autoboxing,Enums, Annotations Scripting, CompilerAccess, DesktopDeployment Tabelle 1: JDK-Entwicklung8

3 Entwicklung von Java-Programmen3.1 VorbereitungZur Entwicklung von Java-Programmen wird das Java Development Kit und in der Regel eineEntwicklungsumgebung benötigt. Eine Entwicklungsumgebung ist eine Sammlung von komplexenProgrammiertools zur Entwicklung von Software-Produkten und Programmen. Die während desKurses eingesetzte Entwicklungsumgebung heißt Eclipse. Sie kann von der folgenden Internet-Seiteheruntergeladen werden: www.eclipse.orgDas JDK 6.0 kann von der Sun-Seite unter der folgenden Adresse heruntergeladen jsp3.2 KlassendefinitionEine Java-Quellcodedatei besteht aus höchstens einer public-Klassendefinition, genannt public toplevel class definition, und einer unbeschränkten Anzahl von nicht public-Klassendefinitionen (nonpublic top level class definitions), die in einer Java-Quelldatei gespeichert werden. Java-Quelldateiensind Unicode-Dateien, die mit der Erweiterung „.java“

besteht aus der Java-API (Java Application Programming Interface) und der Java-VM (Java Virtual Machine). Abbildung 1: Java-Plattform Die Java-API ist eine große Sammlung von Java-Programmen, die in sog. Pakete (packages) aufgeteilt sind. Pakete sind vergleichbar mit Bibliotheken in anderen Programmiersprachen und umfassen u.a.