1 / 55

PI Burgenland Java und JavaScript 1. Teil

PI Burgenland Java und JavaScript 1. Teil. Güssing, Oktober 1999 Martin Weissenböck. Java. Eigenschaften Wurzeln Sprachelemente Entwicklungswerkzeuge Didaktische Qualität Zusammenfassung. Java: objektorientiert .

arty
Download Presentation

PI Burgenland Java und JavaScript 1. Teil

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PI BurgenlandJava und JavaScript1. 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ängigWin95/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 http://java.sun.com

  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 { publicvoid 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> <hr>

  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 • einepublic-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>>>=yString 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 Klassefriendly vom selben Modul ausprivate protected nur von abgeleiteten Klassenprotected auch von abgeleiteten Klassenpublic 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 • 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) • try { /* das Programm */ } catch (BesondererFehler e) { /* Fehlerbehandlung 1 */ }catch (Exception e) { /* Fehlerbehandlung 2 */ } • Auslösen:thrownew 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. 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 Java: Didaktische Qualität (3)

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

  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. McClellanSunSoft Press, 1996. ISBN 0-13-565763-3Mit CD. In englischer Sprache.Guter Überblick über die Sprache mit vielen Beispielen

  45. Java: Literatur • Java HandbookPatrick NaughtonOsborne McGraw-Hill, 1996ISBN 0-07-882199-1, $2795Empfehlenswerte Einführung mit vielen Beispielen Programmbeispiele unter http://www.osborne.com zu finden

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

  47. Java: Literatur • Java: Kai Baufeldt, Rolf MäurersData Becker, 1996ISBN 3-8158-1553-3 (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 Edelmanntewi-Verlag 1996 (ATS 145,-)ISBN: 3-89362-459-7Noch eine preiswerte Einführung, allerdings geringerer Tiefgang. Keine Anhänge zum Nachschlagen

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

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

More Related