Grundlagen der Programmierung II DBIS - SS20062 DBIS - SS2006
Java 2 - GeschichteUrsprung:„Green“-Project bei der Firma Sun Microsystems 1991Entwicklung 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
Grundlagen der Programmierung II DBIS - SS20063 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.5und ist bekannt als Edition 5, ‘Tiger‘-Release.
Online:Die Varianten können heruntergeladen werden unter:http://java.sun.com
Grundlagen der Programmierung II DBIS - SS20064 DBIS - SS2006
Plattformunabhängigkeit von Java
Erinnerung: Übliche Übersetzungsvorgänge bei Programmiersprachen
• Compiler (bei Modula-2, C usw.):
• Interpreter (bei Basic, Lisp 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 10101010100 11001100011 11001100111 11000111001
Maschinencode
Ausführung Ergebnis
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
Grundlagen der Programmierung II DBIS - SS20065 DBIS - SS2006
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
JavaCompiler
Java Bytecode (plattform- unabhängig)
Java-Interpreter (i686-CPU)
Java-Interpreter (SPARC)
Java-Interpreter (Power PC)
Ergebnis
Ergebnis
Ergebnis
Vorgehensweise bei Java (Java Virtual Machine)
Plattformunabhängigkeit von Java
Grundlagen der Programmierung II DBIS - SS20066 DBIS - SS2006
Plattformunabhängigkeit von JavaEigenschaften 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.
Grundlagen der Programmierung II DBIS - SS20067 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
Grundlagen der Programmierung II DBIS - SS20068 DBIS - SS2006
Programmstruktur:Klassen, Methoden und VariablenStruktur:class className {
type variablenName = anfangswert ;rückgabeWert methodenName(parameterListe){}
}
Ein erstes Beispiel:class Student {
int semester; int getSemester() {
return semester;}
Grundlagen der Programmierung II DBIS - SS20069 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) { … }
Grundlagen der Programmierung II DBIS - SS200610 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 ProgrammsAufruf: „java Hello“ (Ausgeführt wird immer die main-Methode!)Ausgabe: „Hello Students!“
Grundlagen der Programmierung II DBIS - SS200611 DBIS - SS2006
AppletsBeispiel:
package simpleapplet;
import java.awt.Graphics;
class HelloWorld extends java.applet.Applet {
public void paint (Graphics g) {
g.drawString(“Hallo Welt!”, 10, 10);
}
}
Grundlagen der Programmierung II DBIS - SS200612 DBIS - SS2006
Einbindung des Applet in HTML
<html>
<body>
<applet
codebase = "."
code = "simpleapplet.HelloWorld.class"
width = "400"
height = "300"
>
</applet>
</body>
</html>
Grundlagen der Programmierung II DBIS - SS200614 DBIS - SS2006
Java EntwicklungsumgebungenEine Entwicklungsumgebung (Integrated DevelopmentEnvironment – 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!
Grundlagen der Programmierung II DBIS - SS200616 DBIS - SS2006
Eclipse• Eclipse 3.0 oder 3.1 unter: www.eclipse.org
• PlugIn Omondo für UML www.omondo.de
Grundlagen der Programmierung II DBIS - SS200617 DBIS - SS2006
Java - API - Dokumentationhttp://java.sun.com/j2se/1.5.0/docs/api/
Grundlagen der Programmierung II DBIS - SS200621 DBIS - SS2006
Zugreifbarkeit auf Methoden und Variablen
public
protected
ohne
private
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.
public – für Methoden aller Klassen zugreifbar (welche die Klasse importieren).
Zugriffsmodifizierer
Grundlagen der Programmierung II DBIS - SS200622 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 !!!