16.01.2006, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Beispiel class SpreadSheet { int cellA1, cellA2, cellA3; synchronized.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Ausnahmen HS Merseburg (FH) WS 06/07.
Java News & Music Der Chat
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Vortrag - Kenny Schlör Applets Einführung in die Appletprogrammierung.
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 Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Das Roboterprojekt Einführung Der erste Entwurf Das Thread-Konzept Hindernisse Website.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Parallel Programming Condition Queues
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Einbinden von Grafiken
Parameterübergabemechanismen für den Methodenaufruf
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmiervorkurs WS 2014/15 Methoden
Threads in Java Wiederholung der BS Grundlagen Alois Schütte AOSD1.
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Muster nebenläufiger Programmierung concurrent Packet von Java Alois Schütte AOSD1.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Prof. Dr. Alois Schütte Advanced System Programming 1 Das concurrent Paket 1 Überblick 2 Lock 3 Condition 4 Queue 5 Executors.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs Übung Besprechung der Hausaufgabe
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
93 Das Monitorkonzept (nach Hoare/Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Einführung in die OOP in Java
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
1 VE 11 Kruskal-Realisierung Listen. 2 Auf dem Weg zur Kruskal-Realisierung Vorüberlegungen: Der Graph könnte dargestellt werden als Menge von Knoten,
Dr. Wolfram Amme, Das Thread-Konzept in objektorientierten Programmiersprachen, Informatik II, FSU Jena, SS Thread-Konzept in objektorientierten.
Java Programme nur ein bisschen objektorientiert.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
1 Eine Einführung in die objektorientierte Programmierung.
, PD Dr. Wolfram Amme, Tutorium zum Programmierpraktikum, FSU Jena, WS 2006/07 1 Objekte in Java.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Kapselung von Daten I Gründe für die Datenkapselung Datenkonsistenz leichtere.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Synchronisation mit Monitoren Threads können in Java parallel ablaufen, oft.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Praktische Informatik 1
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Implementieren von Klassen
 Präsentation transkript:

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Beispiel class SpreadSheet { int cellA1, cellA2, cellA3; synchronized int sumRow() { return cellA1 + cellA2 + cellA3; } synchronized void setRow(int a1, int a2, int a3){ cellA1 = a1; cellA2 = a2; cellA3 = a3; } Aufruf von sumRow() oder setRow() über ein Objekt a verlangt jeweils die Sperre von Objekt a

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 2 Beispiel class SpreadSheet { static int cellA1, cellA2, cellA3; synchronized static int sumRow() { return cellA1 + cellA2 + cellA3; } synchronized static void setRow(int a1, int a2, int a3){ cellA1 = a1; cellA2 = a2; cellA3 = a3; } Aufruf von sumRow() oder setRow() verlangt jeweils die Sperre von dem Class-Objekt der Klasse SpreadSheet

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 3 Synchronisation von Blöcken Schlüsselwort synchronized kann für Blöcke verwendet werden Angabe eines Objektes, dessen Sperre verwendet werden soll synchronized (myObject){ // Anweisungsblock der synchronisiert werden muß... } synchronized void myMethod(){ void myMethod(){... synchronized (this){ }... } Synchronisation von Blöcken oder Methoden verschiedener Klassen

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 4 Freigabe von Sperren wait() und notify() erweitern Synchronisationsmechanismen Methodenaufruf wait() bewirkt: Thread beendet Bearbeitung eines synchronisierten Blocks und geht in den “blockierten” Zustand Sperre für den synchronisierten Block wird freigegeben Methodenaufruf notify() bewirkt: mit wait() in den blockierten Zustand versetzter Thread, kann wieder die Sperre des entsprechenden Objektes anfordern notify() aufrufender Thread beendet normal die Ausführung auf dem synchronisierten Block “aufgeweckter” Thread kann (muß aber nicht) als nächstes die Sperre erhalten und führt dann die Bearbeitung fort überladene Version der wait-Methode und notifyAll()-Methode

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 5 Beispiel class MyThing { synchronized void waiterMethod() { // Ausführung irgendwelche Sachen wait(); // Weiterbearbeitung der Methode } synchronized void notifierMethod() { // Ausführung irgendwelcher Sachen notify(); // Weitere Arbeiten werden ausgeführt werden } synchronized void relatedMethod(){ // Ausführung irgendwelcher Arbeiten }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 6 Beispiel: Producer und Consumer Threads class Producer extends Threads{ static final int MAXQUEUE = 5; private Vector messages = new Vector(); public void run(){ try{ while(true){ putMessage(); sleep( 1000); } catch (InterruptedException e){ } }...

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 7 Beispiel: Producer und Consumer Threads... private sychronized void putMessage() throws InterruptedException{ while( message.size == MAXQUEUE) wait(); message.addElement( new java.util.Date().toString()); notify(); } public synchronized String getMessage() throws InterruptedException { notify(); while( messages.size() == 0 )wait(); String.message = (String) messages.firstElement(); messages.removeElement( message ); return message; }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 8 Beispiel: Producer und Consumer Threads class Consumer extends Threads { Producer producer; Consumer( Producer p){ producer = p; } public void run() { try { while( true ){ String message = producer.getMessage(); System.out.println(´´Got message: ´´ + message); sleep( 2000 ); } } catch ( InterruptedException e ) { } }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 9 Applets in der Programmiersprache Java

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 10 Applets in Java Applikationen versus Applets Java-Applikationen sind in sich geschlossene Java Programme, die nur mit dem Java-Interpreter ausgeführt werden können Java-Applets werden mit einem speziellem HTML-Tag in eine Web- Seite eingebettet, von einem javakundigen WWW-Browser (z.B. Netscape, Internet-Explorer) von einem Web-Server heruntergeladen und auf dem lokalen System ausgeführt Applets unterliegen strengen Sicherheitsvorkehrungen Applets können normalerweise das Dateisystem des Benutzers nicht lesen und nicht beschreiben. Applets können nur mit dem Server kommunizieren auf dem sie gespeichert sind Applets können auf Client-Servern keinerlei Programme ausführen

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 11 Einbinden eines Applets in ein HTML-Dokument Einbinden eines Applets in ein HTML-Dokument erfolgt mit einem APPLET-Tag <APPLET CODE = ´´Planet.class´´ WIDTH = 200 HEIGHT = 100 CODEBASE = ´´classes´´ ALIGN = left HSPACE = 10 VSPACE = 10> There would be an applet here if your browser supported Java.

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 12 Attribute des APPLET-Tags CODE ist erforderlich, gibt die Datei an in der die Hauptklasse des Applets abgelegt ist CODEBASE - Pfadname auf dem sich die Klasse befindet WIDTH und HEIGHT sind erforderlich, um die Grenzen der Applet-Box in Pixeln zu bezeichnen ALIGN - definiert die Position des Applets auf der WWW-Seite left, right, top, texttop, middle, baseline, bottom, HSPACE und VSPACE - Abstand des Applets auf der WWW- Seite in Pixeln PARAM-Tag - Parameterübergabe an das Applet ist der verwendete Browser nicht Java-fähig erscheint anstatt des Applets der eingebundene Text

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 13 Beispiel einer HTML-Dokumentes HelloWeb Here is a HelloWeb-Program, just in case your are unhappy! <APPLET CODE = ´´Hello.class´´ WIDTH = 300 HEIGHT = 200 > There would be an applet here if your browser supported Java.

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 14 Erstellen von Applets Ein Applet ist eine Unterklasse der Klasse java.applet.Applet public class myApplet extends Applet {... } die Datei muß denselben Namen wie das Applet haben abgeleitete Klasse muß als public definiert werden wird eine Applet über das WWW geladen, bildet Java ein Objekt dieser Klasse keine main-Methode hat vordefinerte Methoden die überschrieben werden können void init(), void start(), void stop(), void destroy(), void paint(Graphics g) String getParameter(String), void resize(int width, int height)

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 15 Beispiel eines Applets import java.applet.Applet; import java.awt.Graphics; public class Hello extends Applet { public void paint(Graphics g){ String name = getParameter(´´name´´); if ( name == null) name = ´´NN´´; String s = ´´Hello ´´ + name + ´´!´´; g.drawString(s, 10, 20); }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 16 Lebenszyklus eines Applets start() unbekanntinitialisiert laufend init() gestoppt start() zerstört destroy() Laden des Applets Zurückkehren zu einer Seite Deiconifizierung Reload in Netscape stop() Laden einer neuen Seite Iconifizierung Browser/Appletviewer Zustand Verwerfen des Applets im Browser

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 17 Aktivitäten eines Applets Initialisierung: Applet wird zum ersten Mal geladen Einlesen von Parametern Erzeugen wichtiger Objekte Einbinden von Medien public void init() {... } Zerstören: endgültiges Beenden des Applets Beenden noch laufender Threads oder Freigabe anderer Ressourcen public void destroy() {... }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 18 Aktivitäten eines Applets Starten: nach Initialisierung, Rückkehr auf die zugehörige WWW-Seite oder Neuladen Starten von Threads, Aussenden von Meldungen an Hilfsobjekte public void start() {... } Stoppen: beim Verlassen der WWW-Seite oder vor Neuladen Beenden laufender Threads oder Freigabe anderer Ressourcen public void stop() {... } Zeichnen: Zeichnen am Bildschirm public void paint(Graphics) {... }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 19 Beispiel public class MyApplet extends Applet{ String s; int inits = 0; int starts = 0; int stops = 0; public void init() { inits++ } public void start() { starts++ } public void stop() { stops++} public void paint(Graphics g){ s = ´´inits: ´´ + inits + ´´, starts: ´´ + starts + ´´, stops: ´´ + stops; g,drawString(s, 10, 10); }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 20 Applets als Threads class MyApplet extends Applet { Thread t; public void start() { if( t ==null) { t = new Thread(this); t.start(); } } public run() { // Ergibt false, nachdem stop() aufgerufen wurde while( t == Thread.currentThread()){... } } public void stop() { t = null; }