Einführung in Java Ausgewählte Quellen zu Java

Werbung
Einführung in Java
Wesentliche Eigenschaften und
Merkmale der Programmiersprache Java
Prof. Dr. Stefan Böttcher
Universität Paderborn
im Rahmen der Vorlesung:
Webbasierte Informationssysteme
SS 2004
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 1
Ausgewählte Quellen zu Java
• Java gibt es kostenlos von Sun unter
http://java.sun.com/j2se/1.4.2/downloads/index.html
• Online-Dokumentation zu Java ebenfalls unter
http://java.sun.com/j2se/1.4.2/docs/index.html
• empfohlenes Einführungsbuch zu Java:
Bell / Parr: Java für Studenten, Pearson 2003.
• (es tut aber auch fast jedes andere Einführungsbuch zu Java)
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 2
1
Anforderungen aus dem
Software-Engineering (1)
Praktischer Einsatz von Software :
•
•
•
•
portabel
korrekt / fehlerfrei
robust
sicher
auf andere Betriebssysteme/...
( z.B. keine Speicherfehler )
Ausnahme-Behandlung am Ort
Vor Java keine durchgängige Technologie dafür
Usability-Anforderungen :
• effizient
• leicht verständlich
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 3
Anforderungen aus dem
Software-Engineering (2)
Ziel: wirtschaftliche Software-Entwicklung
• wiederverwendbar
in verschiedenen Anwendungen
• wartbar
• anpaßbar
z.B. an Sprachen, Geräte, ...
• erweiterbar
z.B. um zusätzliche Funktionalität
• lesbar
• im Team entwickelbar
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 4
2
Anforderungen durch das Internet (1)
• WWW-Zugriff , Unterstützung von URLs
• Zugriff auf entfernte Rechner , HTTP-Unterstützung
• Client-/Server-Anwendungen
• Flexible Programmierung von Clients (durch Applets)
• Sicherheitsstandards für Applets (Sandbox)
• Unterschiedliche Grade von Vertrauenswürdigkeit
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 5
Anforderungen durch das Internet (2)
• Client-/Server-Anwendungen
• Interaktive Anwendungen und Sitzungen (Session-Konzept)
• verteilbare Anwendungen
• Transparenz des Ortes (entfernter Methoden-Aufruf)
• Flexible Lastverteilung zwischen Client und Server
• Effiziente Programmierung von Servern
• Sicherheit für den Server
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 6
3
Java-Applikationen (Programme)
( = eigenständig, ohne einen Browser ausführbare Programme )
class Kunde
{
public static void main( String[ ] args )
{
String ausgabe =
“Herzlich willkommen in unserem Internet-Shop“ ;
System.out.println( ausgabe );
// ... weitere Anweisungen
}
}
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 7
Programme übersetzen und ausführen
Kunde.java
Java-Programm
Java-Compiler
Kunde.class
Java-Byte-Code
Eingabe
Byte-Code-Interpreter
Ausgabe
beliebige Zielmaschine
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 8
4
Programme übersetzen und ausführen
Bei Java-Programmen in der DOS-Box:
C:\java> javac Kunde.java
erzeugt Kunde.class
erfordert, dass der Java-Compiler im Pfad PATH enthalten ist, z.B. durch
C:\java> SET PATH = C:\j2sdk1.4.0_01\bin
C:\java> java Kunde
startet Kunde.class
erfordert, dass die Java-Bibliothek(en) und das aktuelle Verzeichnis im
Klassenpfad CLASSPATH enthalten sind, z.B. durch
C:\java> SET CLASSPATH = .;C:\j2sdk1.4.0_01\lib\dt.jar;C:\j2sdk1.4.0_01\lib\tools.jar
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 9
Portabilität von Java
•
Einheitliche virtuelle Maschine (Interpreter)
für alle Zielmaschinen ( statt Maschinen-Code )
•
Einheitliche Datentypen (anders als in C/C++),
z.B. immer 32 Bit für Integerzahlen (int)
==> Portabilität:
Byte-Code: Betriebssystem-übergreifend lauffähige Programme
Write once run everywhere
•
Applets sind über das Internet in jeden Java-fähigen
Browser ladbar.
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 10
5
Elementare Datentypen in Java
Für ganze Zahlen:
- byte 8 Bit -128, ..., 0, ..., 128
- short 16 Bit -32768, ..., 0, ..., 32767
- int
32 Bit -231, ..., 0, ..., 231-1
- long 64 Bit -263, ..., 0, ..., 263-1
(über 1018)
Initialwert: 0
Initialwert: 0
Initialwert: 0
Initialwert: 0
Für Kommazahlen:
(über 10308)
(über 10308)
- float 32 Bit
- double 64 Bit
Initialwert: 0.0
Initialwert: 0.0
Für logische Werte
- boolean
false , true
Für Zeichen
- char 16 Bit
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 11
Internationalität von Java
Internationaler Zeichensatz
• Unicode statt Bytes für Zeichen
inklusive Umlaute: deutsche, skandinavische, ... ,
japanische, chinesische Sonderzeichen, ...
• C/C++
8 Bit
==> 256 Zeichen
• Java
16 Bit ==> verbraucht doppelt soviel Speicherplatz, aber
bietet 256 mal soviele Zeichen zur Auswahl
Lokale Umgebungen (landesspezifisch)
==> Portabilität von Anwendungen in andere Staaten/Sprachen
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 12
6
Operatoren in Java
• Rechenoperatoren: + , - , * , / , ...
• Vergleichsoperatoren: < , > , == , != , >= , <=
• logische Operatoren: && (und) , || (oder) , ! (nicht)
• Zuweisungsoperatoren: = , += , ... z.B. x+=4 Kurzform für x=x+4
• Typumwandlung, z.B. x = ( int ) 3.14 ;
und ein paar weitere
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 13
Kontrollstrukturen in Java
• if ( Bedingung ) { Anweisung1 ; ... ; AnweisungN ; }
else
{ Anweisung ; ... }
• for ( InitialisierungsAnweisung ; Bedingung ; SchrittAnweisung )
{ Anweisung ; ... }
• while ( Bedingung ) { Anweisung ; ... }
• do { Anweisung ; ... } while ( Bedingung ) ;
und ein paar weitere ( switch, break, continue, return )
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 14
7
try-Anweisung und Ausnahmen
try
{
//
//
//
//
}
Anweisungen, die (höchstens) 1x ausgeführt werden.
Falls eine Ausnahme auftritt
(Division durch 0, Datei (Datenbank,Klasse) nicht da, ...),
wird der try-Block vorzeigt beendet: Sprung zu catch
catch ( Exception e )
// fange Ausnahme auf
{
System.out.println( e.message() ) ; // Ausnahme ausgeben
}
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 15
Funktionen in Java
public static void main( String[ ] args )
{
// Anweisungen der Funktion
}
• ähnlich wie in anderen Sprachen (z.B. C/C++)
• können ohne (void) oder mit Ergebnis (int/double/...) arbeiten
• 2 Arten: normale Funktionen (static) und Methoden (nicht static)
Wo eine Anweisung stehen darf, darf auch ein Funktionsaufruf stehen.
Wo ein Wert stehen darf, darf auch F.-Aufruf mit Ergebnis stehen.
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 16
8
„Alles Klasse“
• jede Funktionen steht in einer Klasse
• Klassen bieten diese Funktionen an (liefern eine Implementierung)
• jede Variable ist in einer Funktion oder einer Klasse definiert
( es gibt keine globalen Variablen , Klassen verstecken Variablen )
class Kasse
{
int geld_in_der_kasse ;
void bezahlen( int betrag )
{ // Implementierung der Funktion(Methode) bezahlen
}
... // weitere Variablen und Methoden
}
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 17
Objekte
von jeder Klasse kann man Objekte definieren.
...
{
Kasse meineKasse ;
// 1. Kassenobjekt
meineKasse . geld_in_der_kasse = 1000 ; // Variable zugreifen
meineKasse . bezahlen( 500 ) ;
// Funktion aufrufen
Kasse meineKasse2 ;
// 2. Kassenobjekt
meineKasse2 . geld_in_der_kasse = 2000 ; // Variablenzugriff
meineKasse2 . bezahlen( 600 ) ;
// Funktionsaufruf
}
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 18
9
Strings in Java
Vordefinierte Klasse String
String s1 = “abc“ ;
String s2 = s1 + “def“ ; // Strings s1 und “def“ aneinanderhängen
s2 += “ghi“ ;
// an s2 hinten “ghi“ anhängen
System.out.println( s2 ) ; // String s2 ausgeben
String s3 = s2.substring( 2, 4 ) ;
// Teilstring herausholen
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 19
Übung: Java-Programm schreiben
Schreiben Sie ein Java-Programm Willkommen.java ,
das Ihren Namen ausgibt.
Übersetzen Sie es ( mit javac Willkommen.java )
und führen Sie es in der DOS-Box aus ( mit java Willkommen ) .
Ungefähr so sieht es aus,
wenn es geklappt hat.
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 20
10
Fehlerbehebung beim Java-Programmieren
Wenn Java-Programmierumgebung nicht richtig eingestellt ist:
Java-Pfad nicht gefunden!
Pfad "path" setzen
danach läuft der Compiler
Programm läuft nicht
Pfad "classpath" setzen
danach läuft es evtl.
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 21
Fehlerbehebung beim Java-Programmieren
Wenn Dateinamen und Klassennamen nicht übereinstimmen:
Dateiname falsch
Dateiname korrekt
Klassenname falsch
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 22
11
Fehlerbehebung beim Java-Programmieren
Reaktionen von Compiler und JVM auf Syntaxfehler:
; fehlt am Ende des Befehls
} fehlt am Ende des Blocks
Funktion hinter ^ (println) ist
falsch geschrieben
main-Funktion fehlt
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 23
Webseite mit Java-Programm generieren
Editieren
Umlaute
Compilieren
und ausführen
ausführen mit
Ausgabeumleitung
und im Browser ansehen
Einführung in Java im Rahmen der Vorlesung Webbasierte Informationssysteme SS2004 - Prof. Dr. Böttcher S. 5/ 24
12
Herunterladen