23
Seminar Internet-Technolo gien : Java 1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Embed Size (px)

Citation preview

Page 1: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 1

Seminar: Internet-Technologien

Thema: Java

Autor: Marc Lettrari

Page 2: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 2

Die Themen

1 Motivation und Zielsetzung

2 Die Grundbestandteile von Java

3 Die Sprachelemente von Java

4 Die Basispakete

5 Netznutzung in Java

6 Applets

7 Beans

Page 3: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 3

Motivation und Zielsetzung

•Zusammenhang Java - Internet

•Java ist eine moderne Sprache

•Objektorientierte Konzepte in Java

•Architektur netzbasierter Anwendungen

Page 4: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 4

Warum Java

•Bisherige Anwendungen waren eingeschränkt in ihrer

Plattformunabhängigkeit durch z.B.

•Verfügbare Compiler, Kompatibilität der Compiler

•unterschiedliche Klassenbibliotheken

•unterschiedliches Verhalten auf unterschiedlichen Systemen

•Für den Einsatz im Internet nicht geeignet

Page 5: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 5

Architektur

Java-Quelltext

Java-Bytecode

JVM

Betriebssystem

Hardware

Core -Packages

java.lang

java.io

....

javac <Datei.java>

java <Datei.class>

Page 6: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 6

Die Sprache

•Datentypen

•Einfach: byte, int, long, float, char, boolean

•Referenzdatentypen: Felder, Klassen, Schnittstellen

•Jede Variable besitzt einen Datentyp und einen Gültigkeitsbereich

•Der Gültigkeitsbereich legt fest, wann eine Variable erzeugt/vernichtet wird

•Je nach Deklaration z.B. Methode, Klasse oder innerer Block

Page 7: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 7

Die Sprache

•Operatoren verändern Werte von Variablen, weisen Werte Variablen

zu, berechnen Ausdrücke

•Arithmetische Operatoren: *, /, ...

•Vergleichs- u. Bedingungsoperatoren: <, >, !=, ...

•Verbindungsoperatoren: &&, ||, !

•Bitoperatoren: ~, &, ...

•Zuweisungsoperatoren:

Page 8: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 8

Die Sprache

•Verzweigungsanweisungen (if-else, switch-case)

•Schleifenanweisungen (for, while, do-while)

•Anweisungen zur Ausnahmebehandlung( try-catch-finally,throw)

•Sonstige(break, continue, label:, return)

Page 9: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 9

Java objektorientiert

•Ein Objekt ist Instanz einer Klasse.

•Objekte werden durch den Operator <new> initialisiert.

•Nach der Instantiierung können Methoden des Objekts aufgerufen werden.

•Methodenaufrufe liefern Werte zurück (oder void).

•Objekte müssen nicht explizit freigegeben werden.

•Finalize-Methode kann überschrieben werden.

Page 10: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 10

Java objektorientiert

•Klasse ist Schablone für Objekte

[modifikatoren] class Klassenname [extends] Oberklassenname

[implements] Schnittstellenname

•Modifikatoren: public, final, abstract

•implements: Klasse implementiert Schnittstelle

Bsp:

public class TalkClientApplet extends Applet

implements Runnable {...}

Page 11: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 11

Java objektorientiert

•Im Klassenrumpf können stehen:

Variablendeklarationen:

[zugriffsangaben] [static] [final] [transient] [volatile]

Typ Variablenname

•Methodendeklarationen:

[zugriffsangaben] [static] [final] [native] [synchronized]

rückgabetyp Methodenname([parameterliste])

[throws ausnahmeliste]

•Zugriffsangaben:

private : Klasse protected: Klasse, Unterklasse, Paket

public : Klasse, Unterklasse, Paket, Welt

package: Klasse, Paket

Page 12: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 12

Java objektorientiert

•Vererbung

class unterklasse extends Oberklasse {...}

•Polymorphie

•Schnittstellen definieren Verhaltensprotokolle

[public] interface Schnittstellenname [extends listeDerOberschnittstellen{...}

•Bsp:

interface List {

int MAX = 500;

void append(Object obj);

void delete(Object obj);

}

Page 13: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 13

Basispakete

•Packages: Gruppen zusammengehörender Klassen und Schnittstellen

•Java.lang: Grundlegende Klassen

•java.io: Ein- und Ausgabe (Ströme)

•java.util: z.B. vector

•java.awt: Abstract Window Toolkit

•java.net: Netzwerkzugriff

•java.rmi: Remote Method Invocation

•java.beans: Beans

Page 14: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 14

Fehlerbehandlung

•Fehler behandlen durch Ausnahmen

Bsp:

readfile { try{öffne Datei; Groesse ermitteln; Speicher anfordern;

Datei lesen; Datei schliessen; }

catch (fileOpenFailed) {...}

catch (sizeDeterminationError) {...}

...

Finally {... }

}

Page 15: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 15

Kontrollflüsse und Threads

•Klasse Thread

•sequentieller Kontrollfluß im Programm

•run-Methode

•Synchronisation durch synchronized-Methoden (Monitore)

Page 16: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 16

Benutzungsschnittstelle

•AWT (Abstract Window Toolkit)

•JFC (Java Foundation Classes, Swing-Klassen) bringen u.a.

•Einstellbares Look & Feel

•Drag & Drop

•2D - API

•Mehrere Eingabemedien

Page 17: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 17

Netznutzung

•Klasse URL (zum Lesen aus einer URL)

Bsp: URL meine_url = new URL(„http://www.uni-oldenburg.de“);

•Klasse URLConnection (Lesen und Schreiben)

Bsp: URLConnection con = meine_url.openConnection();

•Erzeugen einer URL

•Öffnen einer Verbindung zur URL

•Erhalten eines Ausgabestromes aus der Verbindung. Dieser Ausgabestrom

ist mit dem Eingabestrom des cgi-bin-Skripts auf dem Server verbunden.

•Schreiben in den Ausgabestrom

•Schliessen des Ausgabestroms

Page 18: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 18

Netznutzung

•Kommunikation über Sockets

•Socket: Endpunkt einer bidirektionalen Verbindung

•Klasse Socket/ServerSocket

•Client:

1. Öffnen eines Sockets 2. Öffnen eines Ein- u. Ausgabestroms zu diesem Socket

3. Lesen aus dem Strom u. Schreiben in den Strom

4. Schließen der Ströme 5. Schließen der Sockets

•Server:

1. Öffnen jeweils eines Ein- u. Ausgabestroms zum Socket

2. Lesen und Schreiben in den Socket

Page 19: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 19

Netznutzung

•RMI-Architektur

Client Server

Stubs Skeletons

Remote Reference Layer

Transport

Page 20: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 20

Netznutzung

•Remote Method Invocation

•Verteilte Java-Anwendungen

Interfaces Classes

Remote RemoteObject

RemoteServer

UnicastRemoteObject

IOException

RemoteException

Page 21: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 21

Applets

•Java Programm, das in einem Browser oder AppletViewer ausgeführt wird

•Meilensteine: init, start, paint, stop, destroy

•Bsp:

<APPLET CODE=AppletUnterklasse.class

WIDTH=einInt HEIGHT=einInt>

</APPLET>

Java.lang.Object

Java.awt.Component

Java.awt.container

Java.awt.Panel

Java.applet.Applet

Page 22: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 22

Applets

•Sicherheitsbedingte Einschränkungen

•Keine Bibliotheken laden / native-Methoden definieren

•Keine Dateien lesen / schreiben

•Keine Rechnernetzverbindung aufnehmen (außer zu Ursprungsrechner)

•Keine Programme starten

•Bestimmte Systemeigenschaften nicht lesen

•Fähigkeiten

•Applets können Audiodaten abspielen

•Applets können leicht HTML-Dokumente anzeigen

•Applets können öffentliche Methoden anderer Applets aufrufen

Page 23: Seminar Internet-Technologien : Java1 Seminar: Internet-Technologien Thema: Java Autor: Marc Lettrari

Seminar Internet-Technologien : Java 23

Beans

•Komponenten (wiederverwendbar, visuell editierbar)

•Entwurfsmuster / Bean Information Class

•Builder Tools

•Kommunikation über Events

•JAR-Files

•Package java.beans (BDK)