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
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
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 Programm (Quellcode) Compiler 00010110010 11001001001 00001110001 11111000001 Ausführung 10101010100 11001100011 11001100111 11000111001 Maschinencode Ergebnis Interpreter (bei Basic, Lisp usw.): 10 INPUT n$ 20 FOR i=1 TO 10 30 PRINT Hi,n$ 40 NEXT Anweisung Nr. i Interpreterer 00010110010 11001001001 Maschinencode Ausführung Ergebnis Nr. i 4 Grundlagen der Programmierung II
Plattformunabhängigkeit von Java Vorgehensweise bei Java (Java Virtual Machine) Ergebnis Java- Interpreter (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 Compiler Java- Interpreter (Power PC) Ergebnis Java Quellcode Java Bytecode (plattformunabhängig) Java- Interpreter (SPARC) Ergebnis 5 Grundlagen der Programmierung II
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
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
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
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
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
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
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
Ausführen des Applets 13 Grundlagen der Programmierung II
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
OpenSource: Eclipse 3.1 15 Grundlagen der Programmierung II
Eclipse Eclipse 3.0 oder 3.1 unter: www.eclipse.org PlugIn Omondo für UML www.omondo.de 16 Grundlagen der Programmierung II
Java - API - Dokumentation http://java.sun.com/j2se/1.5.0/docs/api/ 17 Grundlagen der Programmierung II
Java API: Klasse Applet 18 Grundlagen der Programmierung II
Java API: Klasse Applet 19 Grundlagen der Programmierung II
Java API: Klasse Applet 20 Grundlagen der Programmierung II
Zugreifbarkeit auf Methoden und Variablen private nur innerhalb der Klasse sichtbar und somit zugreifbar. ohne nur innerhalb des Pakets, das die Deklaration der Klasse enthält (Standardzugriffsrecht). protected zugreifbar von Methoden der eigenen Klasse, der davon abgeleitete Klassen und von Klassen im selben Paket. private ohne protected public Zugriffsmodifizierer public für Methoden aller Klassen zugreifbar (welche die Klasse importieren). 21 Grundlagen der Programmierung II
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