PI Burgenland Java und JavaScript 1. Teil

Slides:



Advertisements
Ähnliche Präsentationen
Ziele von EINI I + II Einführen in „Informatik“
Advertisements

ALP II: Objektorientierte Programmierung Sommersemester 2006
der Universität Oldenburg
der Universität Oldenburg
Einführung in die Programmierung in JAVA AG SS 2003
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Einführung in die Programmierung Zusammenfassung
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Verteilte Software - Java - Prozedurale Programmierung 1
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
SWITCH - Anweisung.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Objekte und Arbeitsspeicher
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
ARRAY oder FELD oder VEKTOR
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Applets Java für’s Web.
Programmieren Kapitel 3 – Variablen.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Java und Eclipse.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Allgemeines zu Java Universelle, objektorientierte Programmiersprache
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Programmierung 1. Einführung Seite 1
Die Klasse String und ihre Methoden
Unterprogramme in JAVA
ac.at1 EPROG Tutorium #1 Philipp Effenberger Einführung in Java Schlüsselworte Datentypen.
EPROG Tutorium #3 Philipp Effenberger
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
BMEVIEEA100 Grundlagen der Programmierung
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Übersicht Nachtrag zu Ausdrücken
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Variablen und Operatoren. C++ Teil 2: Grundstrukturen Variablen Operatoren Kontrollstrukturen Funktionen Header-Dateien Pointer und Referenzen.
Java Programme nur ein bisschen objektorientiert.
Hello World! Javakurs 2013 Arne Kappen
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
 Präsentation transkript:

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 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“

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

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

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

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!

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

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

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)

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

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.

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

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

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

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

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

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”); }

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); } }

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); }

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

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

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

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

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: +

Java: Ganzzahlige Größen

Java: Gleitkommawerte, Char

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

Java: Operatoren &  ^  |  &&  ||  ?:  = op=  ,

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};

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

Java: Modifikatoren

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

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()

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

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);

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 */ }

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)

Java: Didaktische Qualität (1)

Java: Didaktische Qualität (2)

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

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

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

Java: Literatur Java by example: Jerry R. Jackson, Allan L. McClellan SunSoft Press, 1996. ISBN 0-13-565763-3 Mit CD. In englischer Sprache. Guter Überblick über die Sprache mit vielen Beispielen

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

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

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

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

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

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

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

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

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

JavaScript: Literatur JavaScript - The Definition Guide David Flanagan, O‘Reilly&Associates, Inc, 1996 ISBN 1-56592-193-3, englisch Prägnante Zusammenfassung, nicht unbedingt ein Einsteigerbuch. Sehr gute Auflistung aller Bibliotheksfunktionen!

Unicode: Literatur The Unicode Standard, Version 2.0 The Unicode Consortium Addison-Wesley Developers Press, 1997 ISBN 0-201-48345-9, englisch, mit CD Komplette Darstellung des Unicode