Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PI Burgenland Java und JavaScript 1. Teil Güssing, Oktober 1999 Martin Weissenböck.

Ähnliche Präsentationen


Präsentation zum Thema: "PI Burgenland Java und JavaScript 1. Teil Güssing, Oktober 1999 Martin Weissenböck."—  Präsentation transkript:

1 PI Burgenland Java und JavaScript 1. Teil Güssing, Oktober 1999 Martin Weissenböck

2 Java ä Eigenschaften ä Wurzeln ä Sprachelemente ä Entwicklungswerkzeuge ä Didaktische Qualität ä Zusammenfassung

3 Java: objektorientiert ä Datenkapselung: Datenelemente und Unterprogramme (Methoden) in einer Klasse vereinigt ä Vererbung: Übernahme von Daten und Methoden, Ergänzung bzw. Überschreiben von Methoden ä Polymorphie: alle Klassen sind virtuell

4 Java: verteilt ä Java-Bibliotheken sind über das Internet erreichbar ä Java-Bibliotheken können auch in einem lokalen Netz zur Verfügung gestellt werden ä Verwendetes Protokoll: TCP/IP

5 Java: robust ä Keine Pointer-Arithmetik (wie in C), daher kein illegaler Speicherzugriff möglich ä Prüfung von Array-Indizes; damit wird die Überschreitung von Grenzen verhindert ä Ausnahmebehandlungen (exception) müssen vorgesehen werden

6 Java: sicher ä Java-Programme ä Java-Programme werden über das Netz verteilt ä Byte-Code ä Byte-Code schützt vor Verfälschungen und Virenbefall ä Kontrolle ä Kontrolle durch Prüfsummen ä Zugriffe ä Zugriffe auf das Dateisystem nur in der vorgesehenen Weise erlaubt

7 Java: architekturunabhängig ä Byte-Code erlaubt den Einsatz auf allen Systemen, sofern das Laufzeitsystem vorhanden ist: Einsatz einer virtuellen Maschine ä Beispiele: UNIX, Windows 9*, Windows NT, OS/2, Apple, Sun... ä Wirtschaftliche Bedeutung, Rechtsstreitigkeiten!

8 Java: portierbar ä Alle Datentypen sind intern immer gleich dargestellt ä Beispiele: int ist immer eine 32-Bit-Zahl, mit Vorzeichen int ist immer eine 32-Bit-Zahl, mit Vorzeichen float ist immer eine 32-Bit-Zahl gemäß IEEE-754- Spezifikation float ist immer eine 32-Bit-Zahl gemäß IEEE-754- Spezifikation

9 Java: interpretiert ä Byte-Code wird interpretiert ä Kein Linken von Programmteilen ä Keine Make-Prozeduren ä Klassen können unabhängig von einander geändert werden ä Neuübersetzung des gesamten Programms bei Änderungen nicht notwendig

10 Java: hohe Rechenleistung ä Byte-Code ist dem Maschinencode schon sehr ähnlich ä Einfaches Realisieren von Multithreading-Tasks ä Dadurch Geschwindigkeitssteigerung ä Weitere Beschleunigung durch Just-in-time- Compiler (Übersetzung des Byte-Code auf der Zielmaschine in deren Maschinencode)

11 Java: multithreadfähig ä Quasi-paralleles Abarbeiten unterschiedlicher Aufgaben bringt Geschwindigkeitsvorteile ä Einfache Realisierung von Threads durch die Ableitung einer neuen Klasse

12 Java: dynamisch ä Werden in einer Superklasse neue Methoden oder Instanzvariablen eingeführt, müssen die Subklassen nicht geändert werden Speicherplatz wird mit new angefordert Speicherplatz wird mit new angefordert ä Speicherplatz wird automatisch freigegeben.

13 Java: kompakt ä Keine Include-Dateien (Header-Files) ä Alle Informationen in einer Datei ä Übersichtliche Größe durch das Teilen in einzelne Dateien (Teilen in Klassen)

14 Java: Eigenschaften (1) ä Applets: in HTML-Dateien eingebettet ä Interaktion ä Animation ä Interpreter: ä Netscape, Internet Explorer o.ä. ä Appletviewer ä Plattformunabhängig Win95/98, Win NT/2000, Mac OS 7.5, Solaris, Win 3.1x

15 Java: Eigenschaften (2) ä Applications: Selbständige JAVA-Programme ä Laufzeitinterpreter (*.CLASS) ä Compiler (*.EXE) ä Kostenlose Nutzung: ä Compiler, Interpreter, Library, Dokumentation ä Internetadresse

16 Java: Wurzeln ä C/C++: Syntax, Kontrollstrukturen, Variablen, Gültigkeitsbereiche ä Objective-C: Interface-Konzept ä C++: Klassenkonzept ä Small-Talk: Erweiterbarkeit zur Laufzeit, dynamische Speicherverwaltung, Multithreading

17 Java: Sprachelemente ä Grundlegender Aufbau ä Verzweigungen, Schleifen ä Einfache Datentypen ä Strukturierte Datentypen ä Unterprogramme ä Klassen ä Exceptions

18 Java: Grundlegender Aufbau (1) ä Variablennamen (Unicode), Kommentare, Groß-/Kleinschreibung wie in C/C++ ä Klassen überall System -Klasse immer verwendbar System -Klasse immer verwendbar public class Hallo { public static void main(String[] args) { System.out.println(Hallo); { System.out.println(Hallo); }}

19 Java: Grundlegender Aufbau (2) ä Ein- und Ausgabe, Variablenvereinbarung: import myio; public class b03 { public static void main(String[] arg) { int zahl1, zahl2, ergebnis; { int zahl1, zahl2, ergebnis; zahl1=myio.readInt(); zahl1=myio.readInt(); zahl2=myio.readInt(); zahl2=myio.readInt(); ergebnis=zahl1+zahl2; ergebnis=zahl1+zahl2; System.out.println(ergebnis); System.out.println(ergebnis); } }

20 Java: Grundlegender Aufbau (3) ä Eine Applet-Referenz: import java.applet.Applet; //Anweisung import java.awt.Graphics; // Directory-Struktur public class HalloAp extends Applet //Klasse { public void paint (Graphics g) //Minimum! { g.drawString(Hallo,50,25); { g.drawString(Hallo,50,25); }}

21 Java: Grundlegender Aufbau (4) ä Das zugehörige HTML-File: Hallo Testprogramm Hallo Testprogramm




22 Java: Grundlegender Aufbau (5) ä Keine externen Variablen/Funktionen ä Konstanten C/C++ -Schreibweise: const int a=5; C/C++ -Schreibweise: const int a=5; Java-Schreibweise: private final static int a=5; Java-Schreibweise: private final static int a=5; ä Kommentare /* und */, ferner // /* und */, ferner // /** zur Dokumentation /** zur Dokumentation

23 Java: Applets Kein main -Programm Kein main -Programm eingebettet in einer public class, die von Applet abgeleitet ist eingebettet in einer public class, die von Applet abgeleitet ist eine public -Methode paint eine public -Methode paint ä Applet-Referenz in einer HTML-Datei ä Parameterübergabe von der HTML-Datei an das Java-Programm möglich

24 Java: Verzweigungen, Schleifen if -, switch -Anweisung wie in C/C++ if -, switch -Anweisung wie in C/C++ kein goto kein goto while -, do/while - und for -Schleifen wie in C/C++ while -, do/while - und for -Schleifen wie in C/C++ ä lokale Vereinbarung der Laufvariablen Marken vor geschachtelten Schleifen: break und continue von innen möglich Marken vor geschachtelten Schleifen: break und continue von innen möglich

25 Java: Einfache Datentypen Gleitkomma: float, double Gleitkomma: float, double Ganzzahlig: byte, short, int, long Ganzzahlig: byte, short, int, long Logisch: boolean Logisch: boolean Zeichen: char Zeichen: char ä...alle auch mit Initialisierung Operatoren wie in C/C++, ferner: Shift+zero extension: x>>>y, x>>>=y String concatenation: + Operatoren wie in C/C++, ferner: Shift+zero extension: x>>>y, x>>>=y String concatenation: +

26 Java: Ganzzahlige Größen

27 Java: Gleitkommawerte, Char

28 Java: Operatoren Höchste Priorität: ä ( ) [ ]. ä ( ) [ ]. ä ~ ! ä ~ ! ä * / % ä * / % ä + - ä + - ä >> >>> > >>> << ä > >= >= < <= instanceof ä == != ä == !=

29 Java: Operatoren ä & ä & ä ^ ä ^ ä | ä | ä && ä && ä || ä || ä ?: ä ?: = op = = op =,

30 Java: Strukturierte Daten (1) Felder: int[ ] feld; // oder int feld[ ]; // nur Zeiger, keine Speicherreservierung Felder: int[ ] feld; // oder int feld[ ]; // nur Zeiger, keine Speicherreservierung feld = new int [5]; Alternative: int[ ] feld = new int [5]; feld = new int [5]; Alternative: int[ ] feld = new int [5]; kein free kein free int[ ] feld = {1, 2, 3+4, 5, 6}; int[ ] feld = {1, 2, 3+4, 5, 6};

31 Java: Strukturierte Daten (2) ä Klassen: Konstruktoren, Methoden und Daten wie in C++ Modifikatoren für den Zugriff: private nur von der eigenen Klasse friendly vom selben Modul aus private protected nur von abgeleiteten Klassen protected auch von abgeleiteten Klassen public von allen Klassen möglich Modifikatoren für den Zugriff: private nur von der eigenen Klasse friendly vom selben Modul aus private protected nur von abgeleiteten Klassen protected auch von abgeleiteten Klassen public von allen Klassen möglich

32 Java: Modifikatoren

33 Java: Variablen/Modifikatoren static Kennzeichen für Klassenvariable static Kennzeichen für Klassenvariable final Wert kann nicht geändert werden (Konstanten!) final Wert kann nicht geändert werden (Konstanten!) transient Daten nicht persistent transient Daten nicht persistent volatile Asynchrone Änderung möglich; keine Optimierung, die Variable bleibt im Speicher volatile Asynchrone Änderung möglich; keine Optimierung, die Variable bleibt im Speicher

34 Java: Unterprogramme, Klassen ä Keine Pointerparameter ä Keine Referenzen für einfachen Datentypen ä Ergebnistyp: beliebig ä Überlagerung möglich (wie in C++) ä Konstruktoren ähnlich zu C++ super und this zum Zugriff auf die Basis-Klasse und die eigene Klasse super und this zum Zugriff auf die Basis-Klasse und die eigene Klasse keine Destruktoren, aber finalize() keine Destruktoren, aber finalize()

35 Java: Klassen static in einer Klasse leitet eine Initialisierung ein static in einer Klasse leitet eine Initialisierung ein Vererbung: class B extends A {...} Vererbung: class B extends A {...} ä keine Mehrfachvererbung (daher auch keine virtuellen Basis-Klassen) statt dessen: interface statt dessen: interface

36 Java: Exceptions (1) try { /* das Programm */ } catch (BesondererFehler e) { /* Fehlerbehandlung 1 */ } catch (Exception e) { /* Fehlerbehandlung 2 */ } try { /* das Programm */ } catch (BesondererFehler e) { /* Fehlerbehandlung 1 */ } catch (Exception e) { /* Fehlerbehandlung 2 */ } Auslösen: throw new BesondererFehler (a, b); Auslösen: throw new BesondererFehler (a, b);

37 Java: Exceptions (2) try { /* das Programm */ } finally { /* immer ausführen */ } try { /* das Programm */ } finally { /* immer ausführen */ } Exceptions, die von einem Unterprogramm ausgelöst werden können: public static void Bsp() throws BesondererFehler, FehlerX { /* Unterprogramm */ } Exceptions, die von einem Unterprogramm ausgelöst werden können: public static void Bsp() throws BesondererFehler, FehlerX { /* Unterprogramm */ }

38 Java: Entwicklungswerkzeuge ä Java Developers Kit (Sun, Vers. 1.2) ä Java Café Lite(Symantec) ä C++ (Vers. 5.0 von Inprise) mit Java-Compiler ä J-Buider (Inprise) ä Visual J++ (Vers. 6.0 von Microsoft, Visual Studio) ä JDK (frei nutzbar) + WinEdit (Shareware) ä Sybase, PowerJ (V2.1 für Schulen gratis, V2.5, V3)

39 Java: Didaktische Qualität (1)

40 Java: Didaktische Qualität (2)

41 Java: Didaktische Qualität (3) ä Vorteile: ä Ausstieg aus Schleifen ä Verwendung von Exceptions ä Schwerpunkt OOP ä Dynamische Variablen ä Viele Klassen ä Multithreading ä Interface-Konzept statt Mehrfachvererbung ä Nachteile: ä Hoher Aufwand beim Einstieg ä nur char-Eingabe ä nur call-by-value bei einfachen Datentypen ä Komplizierte Syntax

42 Java und JavaScript Java ä Applets für Webseiten ä Applications (selbständ.) ä Compiler, Just-in-time-Compiler ä Byte-Code ä Strenge Typprüfung JavaScript ä Nur in Webseiten Ausnahme: Server Side JavaScript ä Nur Interpreter ä Source-Text ä Keine Datentypen

43 Java: Zusammenfassung ä für professionelle HTML-Präsentationen bald ein Muß ä gute C/C++-Vorkenntnisse sind nützlich ä in vielen Punkten einfacher als C++ ä didaktisch trotzdem nicht optimal ä gute Entwicklungswerkzeuge schon verfügbar

44 Java: Literatur ä Java by example: Jerry R. Jackson, Allan L. McClellan SunSoft Press, ISBN Mit CD. In englischer Sprache. Guter Überblick über die Sprache mit vielen Beispielen

45 Java: Literatur ä Java Handbook Patrick Naughton Osborne McGraw-Hill, 1996 ISBN , $2795 Empfehlenswerte Einführung mit vielen Beispielen Programmbeispiele unter zu finden

46 Java: Literatur ä Visual J++, Version 1.1 Markus Linke, Markt&Technik, 1997 ISBN Kompaktes Nachschlagewerk, speziell für die Microsoft-Java-Variante ä Java 1.2 Ralph Steyer, Markt&Technik, 1998 ISBN Kompaktes Nachschlagewerk, neueste Java-Version

47 Java: Literatur ä Java: Kai Baufeldt, Rolf Mäurers Data Becker, 1996 ISBN (ATS 147,-) ä Preiswerte, systematische Einführung. Keine Vorkenntnisse erforderlich. HTML-Einführung im Anhang.

48 Java: Literatur ä Java oder: wie steuere ich meine Kaffeemaschine? Bernhard Davignon, Georg Edelmann tewi-Verlag 1996 (ATS 145,-) ISBN: Noch eine preiswerte Einführung, allerdings geringerer Tiefgang. Keine Anhänge zum Nachschlagen

49 Java: Literatur ä Learn Java Now Stephen R. Davis, Microsoft Press 1996 In englischer Sprache Empfehlenswert für den Umstieg von C++ auf Java, keine grundlegenden Erläuterungen von einfachen Sprachelementen

50 Java: Literatur ä Das Einsteigerseminar Java Frank Knobloch, Michael Seeboerger-Weichselbaum (ATS 145,-) bhv 1997, ISBN Einführung samt Zusammenstellung der wichtigsten Klassen. Anhänge

51 Java: Literatur ä Die Java-Fibel Paul Kühnel, Addison-Wesley ATS 437,- ISBN , mit CD Vorteil: kompakte Zusammenfassung am Anfang Nachteil: komplexes Beispiel schon zu Beginn Komplette Syntax im Anhang

52 Java: Literatur ä Java Distributed Computing Jim Farley, OReilly, 1997 ISBN , englisch, USD 32,95 Kein Einsteigerbuch. In dieser Reihe sind etliche Bücher zu Java-Spezialthemen erschienen. Hohe fachliche Qualität, empfehlenswert!

53 Java: Literatur ä Einstieg in Java W.D.Misgeld, J. Gruber Hanser-Verlag, 1996 ISBN , ATS 364,-, mit CD Einführung in Java, von der Installation bis zu Applets und HTML-Seiten. Keine Anhänge zum Nachschlagen.

54 JavaScript: Literatur ä JavaScript - The Definition Guide David Flanagan, OReilly&Associates, Inc, 1996 ISBN , englisch Prägnante Zusammenfassung, nicht unbedingt ein Einsteigerbuch. Sehr gute Auflistung aller Bibliotheksfunktionen!

55 Unicode: Literatur ä The Unicode Standard, Version 2.0 The Unicode Consortium Addison-Wesley Developers Press, 1997 ISBN , englisch, mit CD Komplette Darstellung des Unicode


Herunterladen ppt "PI Burgenland Java und JavaScript 1. Teil Güssing, Oktober 1999 Martin Weissenböck."

Ähnliche Präsentationen


Google-Anzeigen