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 auf andere Betriebssysteme/... korrekt / fehlerfrei ( z.b. keine Speicherfehler ) robust Ausnahme-Behandlung am Ort sicher 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 wartbar in verschiedenen Anwendungen 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 beliebige Zielmaschine Ausgabe 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 Initialwert: 0 - short 16 Bit -32768,..., 0,..., 32767 Initialwert: 0 - int 32 Bit -2 31,..., 0,..., 2 31-1 Initialwert: 0 - long 64 Bit -2 63,..., 0,..., 2 63-1 (über 10 18 ) Initialwert: 0 Für Kommazahlen: - float 32 Bit (über 10 308 ) Initialwert: 0.0 - double 64 Bit (über 10 308 ) 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