Java Schulung Objektorientierte Programmierung in Java Prof. Dr. Nikolaus Wulff Was ist Java? „Java ist eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, architekturneutrale, portable, performante, dynamische Programmiersprache.” Prof. Dr. Nikolaus Wulff 2 Was ist Java? Cont. • Java ist sowohl eine rein objektorientierte Programmiersprache in der Tradition von Smalltalk als auch eine klassische imperative Programmiersprache nach dem Vorbild von C. • Die Designer von Java bedienten sich sich beim Entwurf der Syntax großzügig bei C/C++ Entwickler aus diesem Umfeld können schnell umsteigen Im Detail unterscheidet sich Java aber recht deutlich von C++ bestimmte, subtile Fehlerquellen, werden nicht zugelassen • Java-Code kann in einem Web-Browser ablaufen Es bedarf keiner speziellen Frontend-Clients mehr Prof. Dr. Nikolaus Wulff 3 Woher kommt Java? • Java wurde von Sun Microsystems 1991 zur Software Entwicklung für Verbraucherelektronikgeräte entwickelt. • Mit Java wurde das Ziel verfolgt, eine Sprache zu entwickeln, die klein, schnell, und leicht auf vielfältige Hardwaresysteme portierbar ist. • Diese Ziel machte aus Java eine ideale Sprache zur Verbreitung ausführbarer Programme über das WWW Entwicklung von Programmen, die bedienungsfreundlich und auf verschiedene Plattformen portierbar sind. • Durch die hohe Verbreitung und die vielen Zusatzpakete ist Java die ideale objektorientierte Sprache, sowohl für Desktop- als auch für Webprojekte. Prof. Dr. Nikolaus Wulff 4 Woher kommt Java? • Die syntaktische Seite: – Java ist eine C/C++ artige Sprache. – Java ist jedoch weder eine Ober- noch eine Untermenge von C/C++. • Die semantische Seite: – Java bricht mit dem traditionellen, prozeduralen Programmierstil. – Java unterstützt ausschließlich den objektorientieren Stil und knüpft an Sprachen wie Smalltalk oder Eiffel an. Prof. Dr. Nikolaus Wulff 5 Programmiersprachen Assembler 1950 Cobol Fortran 1960 PL/1 Algol 1970 Lisp Simula BCPL Pascal Smalltalk-72 CLU C beta 1980 C++ Smalltalk Ada Modula2 Lisp CLOS Eiffel Turbo-Pascal 1990 2000 Lisp Flavors Smalltalk-76 Oberon C# Prof. Dr. Nikolaus Wulff Java Modula3 6 Vorteile von Java • Java ist eine schlanke Sprache: – Java ist einfacher als C/C++. – Die Konzepte der Objektorientierung müssen jedoch verstanden werden. • Java Code ist portabel: – Java ist standardisiert. – Compilierter Code ist binärkompatibel und läuft auf jeder Plattform mit Java Runtime. • Java läuft im Web Browser und kann leicht über das Netz verteilt werden. Prof. Dr. Nikolaus Wulff 7 Nachteile von Java • Java Code wird interpretiert: – Java Code ist ~10 mal langsamer als C/C++. – Dies ändert sich allerdings mit besseren JVM... • Java ist eine junge Sprache: – Mit jeder Version kommen neue Features – GUI-Klassen aus AWT/Swing sind nicht immer und überall stabil. • Die Entwicklung der Java Pakete verläuft sehr stürmisch, so dass es leicht ist den Überblick zu verlieren. Prof. Dr. Nikolaus Wulff 8 JDK Versionen Name: enthält JDK 1.0 Vollständige Sprachspezifikation Minimale Sprachbibliothek Applets JDK 1.1 Erweiterung der Standard-Bibliothek Datenbankanbindung („JDBC“) „Java-Beans“ Neues Event-Modell (Delegation) JDK 1.2 Neue GUI-Komponenten (Swing), Collections Serverseitiges Java (Servlets & Java Serverpages) CORBA-Unterstützung JDK 1.3 Integration verschiedener Frameworks Steigerung der GUI-Performance Seit JDK1.2 nennt sich die Entwicklungsumgegung „Java 2“ Prof. Dr. Nikolaus Wulff 9 Definition der Objektorientierung • Objektorientierte Programmierung ist eine Implementierungsmethode, bei der Programme als kooperierende Ansammlungen von Objekten angeordnet sind. • Jedes Objekt stellt eine Instanz einer Klasse da, alle Klassen sind Elemente einer Klassenhierarchie, die durch Vererbungsbeziehungen gekennzeichnet sind. Grady Booch (1994) Prof. Dr. Nikolaus Wulff 10 Der Entwicklungsprozess Source A.java B.java C.java Java Compiler Byte Code A.class B.class C.class Java Runtime Prof. Dr. Nikolaus Wulff 11 Das erste Java Programm • Ziel ist es den grundsätzlichen Entwicklungsprozess kennenzulernen. • Als Entwicklungsumgebung wird Eclipse verwendet. • Der Arbeitsplatz und die Pfade werden einheitlich eingerichtet. • Das „HelloWorld“ Programm wird erstellt und ausgeführt. Prof. Dr. Nikolaus Wulff 12 HelloWorld Projekt • Eigenen Workspace einrichten: – »JavaSchulung« als Wurzelverzeichnis • mkdir c:\JavaSchulung • Eclipse Workspace zuweisen: • eclipse.exe -data c:\JavaSchulung • Eclipse Projekt anlegen • File | New | Project | Java Project | »HelloWorld« • Als Quellordner »src« angeben (add Folder) • Als Ausgabeordner »bin« akzeptieren – Neues Paket »hello« anlegen – Neue Klasse »HelloWorld« im Paket »hello« Prof. Dr. Nikolaus Wulff 13 HelloWorld Eclipse Prof. Dr. Nikolaus Wulff 14 HelloWorld.java Eclipse-Workspace \ Projektname \ Source \ Package \ Klasse C:\JavaSchulung\HelloWorld\src\hello\HelloWorld.java package hello; /** * HelloWorld * Das standard Beispiel in Java. * @author nwulff */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } C:\JavaSchulung\HelloWorld\bin\hello\HelloWorld.class Prof. Dr. Nikolaus Wulff 15 Literatur Ken Arnold, James Gosling: Die Java Programmiersprache Addison-Wesley, 1998, ISBN 3-8273-1034-2 [Von den Java Erfindern.] Mari Campione, Kathy Walrath: Das Java Tutorial Addison-Wesley, 1997, ISBN 3-8273-1050-4 [gute Einführung in die wesentlichen Bestandteile von Java] David Flanagan: Java in a Nutshell 2nd Edition, O‘Reilly, 1997, ISBN 1-56592-262-x. [Der Java-Nachschlage-Klassiker.] James Gosling, Bill Joy, Guy Steele: The Java Language Specification Addison-Wesley, 1996. [Für die, die es genau wissen wollen.] Prof. Dr. Nikolaus Wulff 16