kramann.info
© Guido Kramann

Login: Passwort:










Informatik3
1 Vom_struct_zur_Klasse
..1.1 Vom_struct_zur_Klasse
..1.2 struct_Programm
..1.3 Klassen_Programm
..1.4 Offene_Fragen
..1.5 Historie
..1.6 Objektabstraktion
..1.7 OO_Kundenverwaltung
..1.8 Objektfaehigkeiten
..1.9 Formatierung
..1.10 Motivation
..1.11 Uebung1
..1.12 Uebung2
2 UML
..2.1 Volumenberechnung
..2.2 UML_Klassendiagramm
..2.3 Konstruktor
..2.4 Statische_Variable
3 Strings
..3.1 Klassenbibliotheken
..3.2 stringUML
..3.3 Uebung3
4 Initialisierungen
4 bluej
5 Zeiger_und_Arrays
..5.1 Zeiger
..5.2 Zeiger_und_Funktion
..5.3 Uebung4
6 Vererbung
..6.1 MesswerteUML
..6.2 MesswerteProgramm
..6.3 VererbungsProgramm
..6.4 Vector
..6.5 Uebung
7 Modifikatoren
..7.1 public_Vererbung
..7.2 protected_Vererbung
8 Listen_und_Templates
..8.1 Containertypen
....8.1.1 ListeUML
....8.1.2 ListeProgramm
..8.2 Templates
....8.2.1 Listentemplate
....8.2.2 STLvectorTemplate
..8.3 Uebung5
..8.4 Uebung6
..8.5 Uebung7
9 Java
..9.1 Uebung
..9.2 GettingStarted
..9.3 Animation
..9.4 Hybrid
..9.5 Threads
10 Delegation
11 LayoutProjekt
12 Fenster
13 Uebung
14 Zwischenprojekt
..14.1 Befehle
..14.2 Planung
..14.3 JNI
..14.4 JNIumsetzen
..14.5 Anwendungsklasse
..14.6 GUI01
..14.7 GUI02
15 Rasterlayout
..15.1 Bilder_Packages
..15.2 interfaces
..15.3 ArrayList
..15.4 clone
..15.5 Uebung
16 Nuetzliches
..16.1 Threads
..16.2 Animation
..16.3 RungeKutta
..16.4 Loesungsansatz
..16.5 Internetprogrammierung
....16.5.1 Codegenerierung
....16.5.2 PHP_Programmierung
....16.5.3 PHP_OOP
....16.5.4 Java
17 Algorithmen
..17.1 RungeKutta
..17.2 Loesungsansatz
..17.3 Evoopt
..17.4 Uebung12
..17.5 Uebung8_2014
..17.6 Ausdruecke
18 Uebung10
19 UML_ALT
..19.1 Flaechenberechnung
..19.2 UML_Flaechenberechnung
..19.3 Implementierung
..19.4 ListeUML
..19.5 ListenImplementierung
..19.6 Anwendung
kramann.info
© Guido Kramann

Login: Passwort:




Java-Installation und Test eines Applets und einer Applikation

  • Zum Ablaufen lassen von Java-Applets muß bei dem verwendeten Internet-Browser ein Java-Runtime-Environment (JRE) als Plugin installiert sein.
  • Zum Ablaufen lassen von Java-Applikationen muß auf dem Rechner ein Java-Runtime-Environment installiert sein. Dies ist in diesem Fall eine ausführbare Datei mit dem Namen "java" deren Pfad in den Umgebungsvariablen eingetragen werden muß.
  • Für das Kompilieren von Java-Quellcode muß eine ausführbare Datei "javac" vorhanden sein.
  • Für den Entwickler bringt das JSDK (Java Sun Development Kit) alle drei Komponenten mit.
  • Bei Linux-Slax ist dieses Paket verfügbar, in Knoppix 6 ist es installiert, für Windows gibt es einen Installer.
  • Damit in der Konsole die Befehle java und javac verfügbar sind, sollte der Pfad in das Installationsverzeichnis bis zum /bin-Ordner eingetragen werden. -Dort liegen die ausführbareb Dateien "java" und "javac".
  • Andernfalls muß man den kompletten Pfad zu diesen ausführbaren Dateien immer mit angeben.

Wichtige Unterschiede zwischen C++ und Java

  • In Java gibt es keine Zeiger.
  • Objekte sind immer Referenzen. Folglich gibt es bei Java nur call-by-reference, wenn einer Methode ein Objekt übergeben wird.
  • Durch Arrays und Objekte belegter Speicher wird in Java nicht vom Programmierer, sondern automatisch durch einen mit "Garbage-Collector" bezeichneten Mechanismus wieder freigegeben.
  • Die in C/C++ bekannten einfachen Datentypen int, double, boolean existieren in Java auch als einfache Datentypen, belegen hier aber auf jeder Plattform den gleichen Speicherplatz.
  • Arrays sind in Java Objekte, deren Länge mit der Methode length() abgefragt werden kann.
Einfache Datentypen in Java.

Bild 0-1: Einfache Datentypen in Java.

Erstellen einer Java-Applikation

  • Java-Applikationen können nach Installation des JSDK in einer Konsole kompiliert und gestartet werden.
  • Mit Hilfe eines gewöhnlichen Text-Editors wird die Datei "MeineApplikation.java" erstellt.
  • Durch den Befehl "javac MeineApplikation.java" entsteht im gleichen Verzeichnis der Java-Bytecode "MeineApplikation".
  • Zur Interpretation wird der Bytecode der Java-Virtual-Machine (JVM) übergeben durch de Befehl "java MeineApplikation". - Die Dateiendung .class wird also nicht mit angegeben.
  • Eine Java-Applikation muß genau eine Hauptklasse besitzen.
  • Eine Hauptklasse ist dadurch definiert, dass in ihr die Methode main(..) steht.
  • Anders als in C++ steht also die main-Methode bei Java innerhalb einer besonderen Klasse und nicht außerhalb.
  • Genau wie in C++ ist die main(..)-Methode die erste, die bei Start der Applikation abgearbeitet wird und ist diejenige, in der die benötigten Objekt erzeugt und die Methoden angestoßen werden.
  • Wie in C++ ist die main-Methode statisch, also auch ohne Erstellen eines Objekts verfügbar.
class MeineApplikation
{
    public static void main(String[] args)
    {
        if(args.length==0)
        {
            System.out.println("Sie haben dem Programm keine Parameter übergeben.");
        }
        else
        {
            for(int i=0;i<args.length;i++)
            {
                System.out.println("Argument Nr."+i+":"+args[i]);
            }             
        }
    }
}

Code 0-1: MeineApplikation.java - Beispiel einer Java-Applikation

>javac MeineApplikation.java
>java MeineApplikation
>Sie haben dem Programm keine Parameter übergeben.
>java MeineApplikation Guten Tag
>Argument Nr.0:Guten
>Argument Nr.1:Tag

Code 0-2: Konsoleneingaben in dem Verzeichnis, in dem der Java-Quelltext MeineApplikation.java liegt.

Erstellen eines Java-Applets

  1. Es wird im gleichen Verzeichnis mit Hilfe eines gewöhnlichen Texteditors die HTML-Datei "index.html" und die Java-Quelltext-Datei "MeinApplet.html" erstellt.
  2. Die Java-Quelltext-Datei wird in der Konsole mit dem Befehl "javac MeinApplet.java" kompiliert. Es entsteht die Bytecode-Datei MeinApplet.class
  3. Durch Öffnen der index.html-Datei mit einem Internet-Browser, der ein Java-Plugin hat, wird auch das eingebettete Applet mit geladen und gestartet.
Verzeichnis mit den notwendigen Dateien

Bild 0-2: Verzeichnis mit den notwendigen Dateien

  • Die HTML-Datei enthält einen Tag mit Namen "applet" durch dessen Attribute festgelegt wird, welcher Bytecode eingebettet werden soll, wie groß der eingebettete Bereich im Browserfenster sein soll und welche Parameter dem Applet übergeben werden sollen.
index.html - Quelltext der HTML-Datei.

Bild 0-3: index.html - Quelltext der HTML-Datei.

  • Im Applet wird auf die notwendigen Include-Dateien verwiesen.
  • Achtung: Der Dateiname einer Java-Klasse muß immer genauso heißen, wie die Klasse, die sie enthält.
  • Achtung: Am Ende der Klasse gibt es anders als bei C++ kein Semikolon.
  • Achtung: Die verwendeten Modifikatoren wie "public", "private" und "protected" werden anders als bei C++ nicht in einem bestimmten Programmbereich geschrieben, sondern vor jedes Objekt auf den sie angewendet werden sollen.
  • Die Methoden init(..), start(..) und pain(..) werden von der Virtual Machine automatisch gestartet. Deshalb gibt es in Applets keine main-Methode.
  • init(..): Parameter-Initialisierungen werden durchgeführt.
  • start(..): Methode, die nach Abschluß der Initialisierung aufgerufen wird.
  • paint(..): ermöglicht über das verfügbare "Graphics"-Objekt direkt in den Grafik-Bereich des Applets zu schreiben und zu zeichnen.
MeinApplet.java - Quelltext der Java-Datei.

Bild 0-4: MeinApplet.java - Quelltext der Java-Datei.

Applet, wie es im Internet-Browser angezeigt wird.

Bild 0-5: Applet, wie es im Internet-Browser angezeigt wird.