JAVA - home.hs

Werbung
Übungen Informatik I
JAVA
- Einführung
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 1
Warum Java?
Java ist derzeit die Programmiersprache für das Internet.
Java ist ein Programmierkonzept der Zukunft.
Objekt-orientierte Programmierung ist für komplexe und umfangreiche
Aufgaben unerlässlich.
Plattformunabhängigkeit und Netzwerkfähigkeit sind
Voraussetzungen für eine weltweite Verfügbarkeit einer Anwendung.
Sehr umfangreiche und gute Klassenbibliothek als Standard
vorhanden.
Java macht Spaß.
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 2
Einsatzmöglichkeiten von Java
Java-Einsatzgebiete
Geeignet für prinzipiell alle programmierbaren Anwendungen:
Benutzeroberflächen
Grafik und Animation
verteilte Anwendungen
Information, Animation, Kunst, Unterhaltung im WWW
Beispiele:
Intelligente Information mit Multimedia und Interaktion in
Wissenschaft und Ausbildung.
Benutzeroberflächen für Datenbankzugriffe
Kommunikations- und Büroanwendungen
Java ist ungeeignet für
Hardware-nahe Anwendungen (Treiber), da das Sicherheitskonzept
einen Hardwarezugriff verbietet. Ausweg: Java Native Interface
(Kombination aus Java und C/C++/Assembler).
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 3
Java ist interpretierte Sprache
Compiler
Code
Compiler (Win32)
Ausführbare Datei (Win32)
Compiler (Sparc)
Ausführbare Datei (Sparc)
import java.text.*;
class Test
{
void print(){}
}
Compiler (PowerPC)
Ausführbare Datei (PowerPC)
Interpreter
Code
Interpreter (Win32)
import java.text.*;
class Test
{
void print(){}
}
Interpreter (Sparc)
Compiler
Java Bytecode
(plattformunabhängig)
Interpreter (PowerPC)
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 4
JAVA
Java-Byte-Code und die Java Virtuelle Machine (JVM)
o.g. Eigenschaften
Quelldatei
x.java
Java-Compiler
javac x.java
Java-Byte-Code
x.class
JVM
write once <-> run everywhere
(Applet od. Applikation)
Der Java-Compiler erzeugt Java-Bytecode.
Der Java-Bytecode ist
- plattformunabhängig,
- im Internet verteilbar und
- auf jedem Rechner mit einer JVM lauffähig.
Die Java Virtual Machine besteht aus:
- Bytecode-Lader (lädt den Byte-Code inkl. der benötigten Bibliotheken)
- Bytecode-Verifizierer (überprüft die Sicherheitsregeln)
- Bytecode-Interpreter (interpretiert den Byte-Code und führt ihn als
machinenspez. Code aus)
- eventuell Hotspot-Compiler oder JIT: Übersetzung des Bytecodes in
Maschinencode zur Laufzeit! Folie 5
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
JAVA
Werkzeuge
Editor:
DOS-Fenster
javac
java:
z.B. Notepad, Textpad, Eclipse, joe, ...
Schreiben des
Java-Quellcodes und Speichern unter einem Namen mit der Endung
“.java“ . Der Dateiname muß gleich dem Klassennamen in der Datei
sein.
Verzeichnis wechseln mit cd \Java\Arbeitsverzeichnis
doskey ermöglicht Rückgriff auf vorhergehende Befehle
über Richtungstasten. Mit Strg + c kann ein laufendes Java-Programm
abgebrochen werden.
Java-Compiler
Erzeugt Java-Bytecode aus Java-Quellcode
Aufruf: javac BeispielKlasse.java
Es wird eine neue Datei BeispielKlasse.class
erzeugt
Java-Interpreter für Bytecode (Zum Ausführen von Java-Programmen)
(enthält ab JDK 1.1.7 einen Just-In-Time-Compiler und ab JDK 1.2.2
einen Hotspot-Compiler)
Aufruf: java BeispielKlasse
(Achtung: Die Endung „.class“ wird nicht angegeben)
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 6
JAVA
Java Code Convention
public class HalloJava {
public static void main ( String [] args ) {
System.out.println ("Hallo Java");
}
}
oder so
public class HalloJava {public static void main ( String []
args ) { System.out.println ("Hallo Java");}}
Anweisungen müssen mit ; abgeschlossen werden
Anweisungsblöcke müssen in { } eingeschlossen werden
( Erste Form wird dringend empfohlen)
Groß-/Kleinschreibung relevant!!
Schlüsselwörter hier:
public, class, static, void
(nicht als Variablennamen verwenden)
Namen der Methoden hier:
Helga Gabler, Holger Vogelsang, Christian Pape
main()
System.out.println()
Übungen Informatik 1
Folie 7
JAVA
Java Code Convention
„Klammerung“
Klammern wie im Beispielprogramm.
public class ErsteKlasse {
public static void main (String [] args ) {
for (int i = 0; i <args.length ; i++) {
System.out.println (args [i] );
}
}
}
Abschluss durch Semikolon, außer nach „}“
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 8
JAVA
Java Code Convention
„Groß-/Kleinschreibweise“
Mit kleinem Buchstaben beginnen
Variable
int
meineZahl
String s
***************************************************************************
Mit großem Buchstaben beginnen:
Klassennamen
Helga Gabler, Holger Vogelsang, Christian Pape
BeispielKlasse, Vector
System
Übungen Informatik 1
Folie 9
JAVA
Java Code Convention
„Bezeichner“
Regeln
Bezeichner beginnen mit Buchstaben, Unterstrich_ oder Dollarzeichen $,
dahinter Buchstaben und Ziffern;
Bezeichner sind „case-sensitiv“
Groß-/Kleinschreibung beachten
Schlüsselwörter dürfen nicht für Bezeichner verwendet werden
Konventionen
Klassen sollen mit einem Großbuchstaben beginnen
Methoden und Variablen sollen mit einem Kleinbuchstaben beginnen
Konstanten sollen nur aus Großbuchstaben bestehen.
public class BeispielBezeichner {
public static void main ( String [] args ) {
String ga;
int r;
ga = "Asterix";
r = 3;
final float PI = 3.14;
System.out.println (ga + " sieht Roemer.");
}
}
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 10
JAVA
Java-Programmkomponenten
Quelltext-Dateien in Java bestehen aus einer Folge von KlassenDeklarationen
class ... {
...
}
(Außerhalb von Klassendeklarationen sind im Java-Quelltext nur die
Anweisungen import und package sowie Kommentare zulässig)
Wird im Quelltext eine Klasse public deklariert, muss der Name der
Quelltext-Datei mit dem Namen der public-Klasse übereinstimmen.
Eine Quelltextdatei darf maximal eine Klasse vom Typ public
enthalten.
public class Hallo {
...
}
Hallo.java
Üblicherweise wird der Quelltext jeder Klasse in einer eigenen Datei
gespeichert.
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 11
JAVA
Java-Programmkomponenten
„Hierarchie“
Package
Klasse
Methoden
Klasse
Variablen
Helga Gabler, Holger Vogelsang, Christian Pape
Methoden
Übungen Informatik 1
Variablen
Folie 12
JAVA
Java-Programmkomponenten
import java.lang;
public class HalloAsterix {
public static void main ( String [] args ) {
String asterix = “Hallo, Asterix”;
System.out.println (asterix);
}
}
Das Programm besteht aus folgenden Bausteinen:
package
java.lang;
Klasse
HalloAsterix
Methode
main()
Variable
asterix vom Typ String
Ausgabeanweisung System.out.println ()
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 13
JAVA
Java-Programmkomponenten
„Klassen“
Jedes Java-Programm besteht aus mindestens einer Klasse:
Klasse wird gebildet:
Modifikator(en)
public
Typ
class
Name
HalloAsterix
Modifikatoren:
legen die Eigenschaften (Sichtbarkeitsbereich
und Lebensdauer) des Typs fest.
public
nach außen sichtbar
Typ:
wird durch Schlüsselwort festgelegt:
class
Klasse
Name:
Bezeichner der Klasse
HalloAsterix
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 14
JAVA
Java-Programmkomponenten
„Klasse HalloAsterix“
public class HalloAsterix {
public static void main ( String [] args ) {
String asterix = “Hallo, Asterix”;
System.out.println (asterix);
}
}
-
Der Klassenrumpf wird durch
{}
gebildet.
Im Klassenrumpf stehen die weiteren Programmteile
Klassen, die als Applikation ausgeführt werden, müssen public
(„öffentlich“) sein, damit die Java-VM auf die Klasse zugreifen kann.
wesentliches Merkmal einer Klassse
aus Klassen können Objekte, bzw. Instanzen gebildet werden.
⇒ API (Application Programming Interface) ist eine Sammlung von
Klassen für bestimmte Programmieraufgaben
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 15
JAVA
Java-Programmkomponenten
„Die main-Methode“
Jedes Java-Programm besteht aus maximal einer main-Methode.
Die main-Methode ist der Startpunkt einer Anwendung, d.h. sie wird ausgeführt.
Modifikator(en)
public static
Modifikatoren:
Typ:
Name:
Typ
void
Name
main (String[] args)
Sichtbarkeitsbereich und Lebensdauer, hier:
public static
Klasse kann als Applikation ablaufen.
wird durch Schlüsselwort festgelegt:
void
main-methode liefert keinen Rückgabewert
main: Bezeichner der Methode
String[] args : Feld für Kommandozeilenparameter.
public class HalloAsterix {
public static void main (String[] args)
...
}
}
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
{
Folie 16
JAVA
Aufbau des Quelltextes
„Kommentare“
Kommentare
Kommentare werden vom Compiler ignoriert.
Es gibt drei Arten von Kommentaren:
/* Kommentar */
Alle Zeichen zwischen Anfang und Ende des Kommentars werden ignoriert.
Standardkommentar
// Kommentar
Alle Zeichen vom Anfang des Kommentars bis zum Zeilenende werden ignoriert.
Zeilenkommentar
/** Kommentar */
Kommentar, der durch das Werkzeug javadoc ausgewertet werden kann. Dazu
müssen spezielle Schlüsselwörter in den Kommentar eingefügt werden. javadoc
kann daraus beispielsweise HTML-Dokumente erstellen.
Bsp.: @author autorin, @version text, ... (Tags für Dokumentation von Klassen)
@return beschreibung, ...
(Tags für die Dokumentation von Methoden)
Dokumentations-Kommentar
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 17
JAVA
Aufbau des Quelltextes
„Schlüsselwörter“
Schlüsselwörter sind in Java reservierte Wörter.
Sie dürfen beispielsweise nicht als Variablennamen verwendet werden.
Namen wie String, Button, Point, System, println()
sind keine Schlüsselwörter, aber aus der API - Bibliothek, deshalb nicht verwenden.
Ebenso null, true, false (vorbelegt)
Die Schlüsselwörter sind:
boolean
break
byte
case
catch
char
class
const
continue
do
double
else
extends
final
finally
float
for
goto
weitere Schlüsselwörter sind:
Helga Gabler, Holger Vogelsang, Christian Pape
implements
import
instanceof
int
interface
long
native
new
package
protected
public
return
short
static
super
switch
synchronized
throws
transient
try
void
volatile
while
abstract, assert, default, if, this, throw, ...
Übungen Informatik 1
Folie 18
JAVA
Java-API
java.applet
java.awt
java.awt.image
java.io
java.lang
java.net
java.util
Applets
Abstract Windowing Toolkit
AWT-Bildverarbeitung
Bildschirm- und Datei-I/O
Elementare Sprachunterstützung
Netzwerkunterstützung
Div. Utilities und Datenstrukturen
weitere Packages unter
http://java.sun.com/j2se/1.3/docs/api/index.html
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 19
JAVA
Java-API
http://java.sun.com/j2se/1.3/docs/api/index.html
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 20
JAVA
Literatur
Bruce Eckel, „Thinking in Java“, second Edition, Prentice Hall, 2000.
(Kostenlos unter www.bruceeckel.com als PDF-Datei)
Christian Ullenboom, „Java ist auch eine Insel“
(Kostenlos unter www.java-tutor.com/javabuch/ als PDF-Datei)
Guido Krüger, „GoTo Java 2 - Handbuch der Java-Programmierung“,
Addison-Wesley
(Kostenlos unter www.javabuch.de als HTML-Dateien)
Java-Tutorial
(java.sun.com/docs/books/tutorial/index.html)
Java JDK-Referenz (java.sun.com/products/jdk/1.4/index.html)
Helmut Balzert, „Lehrbuch Grundlagen der Informatik“,
Spektrum Akademischer Verlag, 1999
Steve Wilson, „Java Platform Performance Strategies and Tactics“,
Sun Microsystems, http://java.sun.com/docs/books/performance/
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 21
JAVA
Interessante Links
Online-Kurse
von Sun
Go To Java 2 (G.
Krüger)
der Uni Hannover
der Uni Wien (H. Partl)
Download-Seiten
Java-API
Java-Zertifizierung
http://java.sun.com/docs/books/tutorial/
http://www.rz.fh-karlsruhe.de/intern/Kurse/java/gj22/html/cover.html
http://java.rrzn.uni-hannover.de
http://boku.ac.at/javaeinf/jein.html
http://java.sun.com
http://java.sun.com/products/
http://java.sun.com/products/archive/
http://java.sun.com/j2se/1.3/docs/api/index.html
http://www.lanw.com/java/javacert
Helga Gabler, Holger Vogelsang, Christian Pape
Übungen Informatik 1
Folie 22
Herunterladen