Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: „Green“-Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: • hardwareunabhängig • möglichst klein Einsatzgebiet: Konsumgeräte, z.B. Umschalter für das Kabelfernsehen basierend auf C++ (objektorientiert) ohne dessen Schwierigkeiten Name: zuerst OAK (Object Application Kernel), später Java Durchbruch: Ende 1995, 1998 dann JAVA 2 2 Grundlagen der Programmierung II DBIS - SS2006 Java 2 - Varianten • Micro Edition (J2ME) für eingebettete Systeme, PDAs, Smart Phones etc. • Standard Edition (J2SE) „normales“ JDK • Enterprise Edition (J2EE) EJBs, Servlets Ab der Version Java 1.2 spricht man von Java 2! Die zur Zeit neuste Version ist Java 1.5 und ist bekannt als Edition 5, ‘Tiger‘-Release. Online: Die Varianten können heruntergeladen werden unter: http://java.sun.com 3 Grundlagen der Programmierung II DBIS - SS2006 Plattformunabhängigkeit von Java Erinnerung: Übliche Übersetzungsvorgänge bei Programmiersprachen • Compiler (bei Modula-2, C usw.): MODULE p; VAR n,i:INTEGER; BEGIN FOR i:=1 TO n DO n:=n*n; END; END p Compiler 00010110010 11001001001 00001110001 11111000001 10101010100 11001100011 11001100111 11000111001 Ausführung Ergebnis Ausführung Ergebnis Nr. i Maschinencode Programm (Quellcode) • Interpreter (bei Basic, Lisp usw.): 10 INPUT n$ 20 FOR i=1 TO 10 30 PRINT “Hi”,n$ 40 NEXT Anweisung Nr. i 4 Interpreterer 00010110010 11001001001 Maschinencode Grundlagen der Programmierung II DBIS - SS2006 Plattformunabhängigkeit von Java Vorgehensweise bei Java (Java Virtual Machine) Ergebnis JavaInterpreter (i686-CPU) class Dreieck extends GeoObj { double seite,hoehe,alpha; Dreieck(double s, double h, double a) { this.seite=s; this.hoehe=h; this.alpha=a;} double berechneFlaeche() { return 0.5*seite*hoehe);} } Java Quellcode Java Compiler JavaInterpreter (Power PC) Java Bytecode (plattformunabhängig) Ergebnis JavaInterpreter (SPARC) Ergebnis 5 Grundlagen der Programmierung II DBIS - SS2006 Plattformunabhängigkeit von Java Eigenschaften der Java Virtual Machine • Die Virtuelle Maschine ist eine Art „Universaltranslater“. (vgl. mit Raumschiff Enterprise) • Der Bytecode ist der „Maschinencode“ der Virtuellen Maschine. Î von der Virtuellen Maschine direkt ausführbar • Die Virtuelle Maschine ist für alle gängigen Systeme verfügbar. (Windows, Solaris, Linux usw.) • Die Virtuelle Maschine ist z.B. auch in WWW-Browsern integriert. Î Einsatz von sog. „Applets“ möglich. 6 Grundlagen der Programmierung II DBIS - SS2006 Arten von Java-Programmen Applikationen: • „normale“ Programme (vergleichbar mit anderen Sprachen wie Modula-2, C) • eigenständig und ohne Sicherheitseinschränkungen • Eine auszuführende Klasse muss eine main-Methode enthalten • Aufruf durch den Java-Interpreter java Applets: • Java-Programme für den Einsatz in einem WWW-Browser • Einbettung in eine HTML-Seite durch das <applet>- oder das <object>-Tag • nicht eigenständig • keine main-Methode erforderlich; spezielle Schnittstelle • Sandbox-Prinzip / Sicherheitseinschränkungen Server-Anwendungen: • Servlets (Java Server Pages), Enterprise Java Beans 7 Grundlagen der Programmierung II DBIS - SS2006 Programmstruktur: Klassen, Methoden und Variablen Struktur: class className { type variablenName = anfangswert ; rückgabeWert methodenName(parameterListe){ } } Ein erstes Beispiel: class Student { int semester; int getSemester() { return semester; } 8 Grundlagen der Programmierung II DBIS - SS2006 Objekterzeugung und Methodenaufruf Objekt student1 erzeugen: Student student1 = new Student(); Methode aufrufen und Rückgabewert speichern: int semanzahl = student1.getSemester(); Konstruktor: Student() { … } Student(int semester) { … } 9 Grundlagen der Programmierung II DBIS - SS2006 Applikationen Erster Schritt: Erstellen einer Klasse Hello (in einem Editor) mit dem Namen „Hello.java“ class Hello { public static void main(String args[]) { System.out.println(“Hello Students!”); } } Zweiter Schritt: Compilieren des Quellcodes Aufruf: „javac Hello.java“ Ergebnis: autom. Erzeugen des Bytecodes „Hello.class“ Dritter Schritt: Evtl. Ausführen des Programms ÎAufruf: „java Hello“ (Ausgeführt wird immer die main-Methode!) Ausgabe: „Hello Students!“ 10 Grundlagen der Programmierung II DBIS - SS2006 Applets Beispiel: package simpleapplet; import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString(“Hallo Welt!”, 10, 10); } } 11 Grundlagen der Programmierung II DBIS - SS2006 Einbindung des Applet in HTML <html> <body> <applet codebase = "." code = "simpleapplet.HelloWorld.class" width = "400" height = "300" > </applet> </body> </html> 12 Grundlagen der Programmierung II DBIS - SS2006 Ausführen des Applets 13 Grundlagen der Programmierung II DBIS - SS2006 Java Entwicklungsumgebungen Eine Entwicklungsumgebung (Integrated Development Environment – IDE) hilft dem Entwickler beim Erstellen und Debuggen von Programmen. Beispiele für Java Entwicklungsumgebungen: • Web Sphere von IBM (basiert auf Eclipse) • JBuilder von Borland • Sun ONE Studio von Sun Microsystems (ehemals Forte) • ... und viele mehr! 14 Grundlagen der Programmierung II DBIS - SS2006 OpenSource: Eclipse 3.1 15 Grundlagen der Programmierung II DBIS - SS2006 Eclipse • Eclipse 3.0 oder 3.1 unter: www.eclipse.org • PlugIn Omondo für UML www.omondo.de 16 Grundlagen der Programmierung II DBIS - SS2006 Java - API - Dokumentation http://java.sun.com/j2se/1.5.0/docs/api/ 17 Grundlagen der Programmierung II DBIS - SS2006 Java – API: Klasse Applet 18 Grundlagen der Programmierung II DBIS - SS2006 Java – API: Klasse Applet 19 Grundlagen der Programmierung II DBIS - SS2006 Java – API: Klasse Applet 20 Grundlagen der Programmierung II DBIS - SS2006 Zugreifbarkeit auf Methoden und Variablen private – nur innerhalb der Klasse sichtbar und somit zugreifbar. private ohne – nur innerhalb des Pakets, das die Deklaration der Klasse enthält (Standardzugriffsrecht). ohne protected public protected – zugreifbar von Methoden der eigenen Klasse, der davon abgeleitete Klassen und von Klassen im selben Paket. Zugriffsmodifizierer public – für Methoden aller Klassen zugreifbar (welche die Klasse importieren). 21 Grundlagen der Programmierung II DBIS - SS2006 Literatur zu Java • Java Homepage Sun: http://java.sun.com • Java API Specification: http://java.sun.com/j2se/1.5.0/docs/api/index.html • Java Compiler JDK 5.0 und Virtuelle Maschine JRE 5.0: http://java.sun.com/j2se/1.5.0/download.jsp • Java Tutorial: http://java.sun.com/developer/onlineTraining/new2java/index.html • Horstmann, Cornell: "Core Java 2, Band 1", Addison-Wesley • Java News: http://www.onjava.com/ • Reading: „Thinking in Java 3“ von Bruce Eckel !!! 22 Grundlagen der Programmierung II DBIS - SS2006