Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PI Burgenland Java und JavaScript 1. Teil

Ähnliche Präsentationen


Präsentation zum Thema: "PI Burgenland Java und JavaScript 1. Teil"—  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 werden über das Netz verteilt
Byte-Code schützt vor Verfälschungen und Virenbefall Kontrolle durch Prüfsummen 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 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 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 public class Hallo { public static void main(String[] args) { 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; zahl1=myio.readInt(); zahl2=myio.readInt(); ergebnis=zahl1+zahl2; 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); }

21 Java: Grundlegender Aufbau (4)
Das zugehörige HTML-File: <title>Hallo Testprogramm</title> <hr> <applet code=“HalloAp.class” width=250 height=80> </applet>

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

23 Java: Applets Kein main-Programm
eingebettet in einer public class, die von Applet abgeleitet ist 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++ kein goto 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

25 Java: Einfache Datentypen
Gleitkomma: float, double Ganzzahlig: byte, short, int, long Logisch: boolean Zeichen: char ...alle auch mit Initialisierung 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=  ,

30 Java: Strukturierte Daten (1)
Felder: int[ ] feld; // oder int feld[ ]; // nur Zeiger, keine Speicherreservierung feld = new int [5]; Alternative: int[ ] feld = new int [5]; kein “free” 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

32 Java: Modifikatoren

33 Java: Variablen/Modifikatoren
static Kennzeichen für Klassenvariable final Wert kann nicht geändert werden (Konstanten!) transient Daten nicht persistent 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 keine Destruktoren, aber finalize()

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

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

37 Java: Exceptions (2) 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 */ }

38 Java: Entwicklungswerkzeuge
Java Developer’s 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, O‘Reilly, 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, O‘Reilly&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"

Ähnliche Präsentationen


Google-Anzeigen