Betriebssysteme. Wintersemester Kapitel 2 Prozess und Threads. Patrick Kendzo

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com"

Transkript

1 Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo

2 Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Eingabe und Ausgabe Dateisysteme Zusammenfassung + Klausurvorbereitung 2 Betriebssysteme Wintersemester 2015 Patrick Kendzo

3 Metapher Programm, Prozess und Thread (1) Programm: Rezept in einem Kochbuch Bedeutungslos, solange es nicht ausgeführt wird Statisch Prozess: Küche Küche liefert Lebensraum für Köche / Köchinnen Enthält Kochbuch und Utensilien (Pfannen, Schüsseln, Herd, Waschbecken, Gewürze etc...) Jede Küche besitzt einen eigenen Satz an Material Unterschiedliche Küchen sind durch Mauern abgegrenzt Jeder Küche hat mindesten ein(e) Koch / Köchin 3 Betriebssysteme Wintersemester 2015 Patrick Kendzo

4 Programm, Prozess und Thread (2) Metapher (continued) Thread = Koch / Köchin (mit evtl. Kollegen / Kolleginnen) Mehrere Köche / Köchinnen können unabhängig von einander nach demselben Rezept kochen Ein Koch / eine Köchin kann nur in einer Küche existieren und kann die Küche nicht wechseln Alle Köche in einer Küche teilen sich die darin vorhandenen Utensilien und müssen deshalb den Zugriff darauf koordinieren Die Köche können aber nur die Materialien in ihrer Küche verwenden, nicht die in anderen Küchen (Die Küchen sind voneinander isoliert) 4 Betriebssysteme Wintersemester 2015 Patrick Kendzo

5 Programm, Prozess und Thread (3) Aus Sicht eines (einer) Programmierers (Programmiererin ) Programm.Class-Dateien Prozess Abstraktion eines Programms während der Ausführung Starten eines Prozesses durch z. B.: java osinjava oder durch Benutzeranfrage (Doppelklicken eines Programmicons, Tastatureingaben)! Mehrere laufende Prozesse können dieselbe oder unterschiedliche Programme ausführen Thread Nach dem Starten eines Java-Programms existiert u.a. ein Thread, der die main-methode der angegebenen Klasse ausführt 5 Betriebssysteme Wintersemester 2015 Patrick Kendzo

6 Programm, Prozess und Thread (4) Aus Sicht eines (einer) Programmierers (Programmiererin ) Thread (continued) Java Main-Thread kann weitere Thread erzeugen Thread gleichbedeutend mit Aktivität Mehrere laufende Threads können denselben Code oder unterschiedliche Codes ausführen Prozess- und Threadkonzept früher nicht unterschieden! Prozess besaß nur einen Thread Quelle: Tanenbaum: Moderne Betriebssysteme 6 Betriebssysteme Wintersemester 2015 Patrick Kendzo

7 Programm, Prozess und Thread (5) Lernziel dieses Kapitels Konzepte hinter dem Begriff Parallelität (u.a. Erzeugung von Threads) erlernen Nebenläufigkeit Synchronisation Erkennen der Probleme beim Zugriff auf dieselben Objekte von mehreren Threads aus Rückblick: Köche / Köchinnen arbeiten in einer einzigen Küche und benutzen dieselbe Utensilien Fähigkeit, diese Probleme zu lösen 7 Betriebssysteme Wintersemester 2015 Patrick Kendzo

8 Programm, Prozess und Thread (6) Lernziel dieses Kapitels (continued) Die hier (mit Java) erlernten Konzepte haben Beispielcharakter und finden auch in anderen Kontexten statt Threads werden allgemeine in Betriebssystem eingesetzt Unix/Linux) Für das Zusammenspiel von Prozessen gelten dieselben Prinzipien: (Windows, (1) Prozesse sind zwar durch die Speicherverwaltung des Betriebssystems von einander isoliert (Metapher: eigene Küche) (2) Aber Betriebssysteme bieten Möglichkeiten der Kommunikation und Kooperation zwischen Prozessen (Zugriff auf gemeinsame Dateien, gemeinsamen Speicher, Kommunikationskanäle etc...), so dass dieselben Prinzipien auch dort zur Anwendung kommen (Metapher:Flur) 8 Betriebssysteme Wintersemester 2015 Patrick Kendzo

9 Programm, Prozess und Thread (7) Lernziel dieses Kapitels (continued) Kochplatte (Objekt) Pfanne (Objekt) Topf (Objekt) Schüssel (Objekt) Küche (prozess) Küche (prozess) Koch (thread) Koch (Thread) Koch Koch Flur zum Austausch von Nachrichten oder zum Zugriff auf gemeinsame Objekte (Betriebssystem) 9 Betriebssysteme Wintersemester 2015 Patrick Kendzo

10 Was ist Parallelität? Parallelität (1) Unterschiedliche, gleichzeitige Abläufe (Vorgänge) in einem Rechner Beispiel: Folgende Events erfolgen gleichzeitig (1) Eine Datei wird gedruckt, (2) eine Web-Seite wird geladen und (3) eine Desktop-Anwendung wird gestartet Arten von Parallelität Echte Parallelität Pseudoparallelität Mischform Quelle: Tanenbaum: Moderne Betriebssysteme 10 Betriebssysteme Wintersemester 2015 Patrick Kendzo

11 Echte Parallelität in Rechner Mehrere Prozessoren Parallelität (2) Ein- und Ausgabengeräte arbeiten echt parallel Pseudoparallelität Parallelität wird Benutzer vorgegaukelt Virtuelle Prozessoren Prozess- und Threadkonzept Schnelles Wechsel zwischen Prozessen bzw. Threads erzeugt die Illusion, dass Prozesse bzw. Threads parallel laufen Mischform Echte parallele Abläufe in einem 3er Prozessor-System und Eine (Quasi-) Parallelität innerhalb der einzelnen Prozessoren 11 Betriebssysteme Wintersemester 2015 Patrick Kendzo

12 Warum Parallelität? Case: Webserver in einer verteilten Client-Server Anwendung Anfragen der Clients werden in der Reihenfolge ihres Eintreffens bedient Problematik Lang dauernder Auftrag blockiert spätere eingetroffene Aufträge Lösung: Nebenläufigkeit! 12 Betriebssysteme Wintersemester 2015 Patrick Kendzo

13 Gebraucht von Threads in Java Erzeugung und Starten von Java Threads Definition des Codes, der von einem Thread ausgeführt werden soll in der Methode run(): public void run() // Code, der innerhalb eines Threads ausgeführt wird Die Klasse Thread besitzt eine leere run()-methode Es existieren zwei Möglichkeiten zur Definition der run()-methode 13 Betriebssysteme Wintersemester 2015 Patrick Kendzo

14 Gebraucht von Threads in Java (2) Erzeugung und Starten von Java Threads (continued) Möglichkeit 1 Eine neue Klasse von Thread ableiten, die run()-methode überschreiben und Objekt der abgeleiteten Klasse erzeugen public class ThreadCase1 extends Thread public void run() System.out.println("Hello Class"); public static void main(string[] args) ThreadCase1 tc = new ThreadCase1(); tc.start(); 14 Betriebssysteme Wintersemester 2015 Patrick Kendzo

15 Gebraucht von Threads in Java (3) Erzeugung und Starten von Java Threads (continued) Möglichkeit 2 Ein Thread-Objekt mit einem Objekt als Parameter, der übergebene Parameter soll das Runnable-Interface implementieren. Die Runnable-Schnittstelle besitzt die Methode run() public class ThreadCase2 extends Runnable public void run() System.out.println("Hello Class"); public static void main(string[] args) ThreadCase2 runner = new ThreadCase2(); Thread t = new Thread(runner); t.start(); 15 Betriebssysteme Wintersemester 2015 Patrick Kendzo

16 Gebraucht von Threads in Java (4) Erzeugung und Starten von Java Threads (continued) Starten von Threads: Aufrufen der start()-methode der Klasse Thread lässt den Thread laufen public void start(); In den oben dargestellten Beispiele laufen die Threads noch nicht! In Java Unterscheidung zwischen Thread-Objekt und Thread: Thread-Objekt Der Körper eines Kochs (Hülle) Thread entspricht Das Leben eines Kochs Wenn Thread endet, ist Thread-Objekt noch vorhanden(analogie zum menschlichen Leben) Solange Thread läuft, existiert auch die zugehörige Hülle 16 Betriebssysteme Wintersemester 2015 Patrick Kendzo

17 Gebraucht von Threads in Java (5) Starten von Threads (continued): public class MyStartingThreads1 extends Thread private String myname; public MyStartingThreads1 (String name) myname = name; public void run() for(int i = 1; i <= 1000; i++) System.out.println(myName + " (" + i + ")"); public static void main(string[] args) MyStartingThreads1 t1 = new MyStartingThreads1 ("Thread 1"); MyStartingThreads1 t2 = new MyStartingThreads1 ("Thread 2"); MyStartingThreads1 t3 = new MyStartingThreads1 ("Thread 3"); t1.start(); t2.start(); t3.start(); 17 Betriebssysteme Wintersemester 2015 Patrick Kendzo

18 Gebraucht von Threads in Java (5) Starten von Threads (continued): Eine mehrfache Durchführung des oben dargestellten Java-Programms führt zu unterschiedlichen Ausgaben Ausgabe vom Betriebssystem abhängig (Windows, Unix/Linux) Ausgabe von Entwicklungsumgebungen (IDEs) abhängig ( Eclipse, Netbeans) Veranschaulichung Thread 1 Thread 2 Thread 3 Vgl. Oechsle: Parallele Programmierung mit Java Threads 18 Betriebssysteme Wintersemester 2015 Patrick Kendzo

19 Interprozesskommunikation (1) Probleme beim Zugriff auf shared (gemeinsame genutzte) Objekte Entsteht immer wenn mindestens ein Thread Schreibzugriffe durchführt Bei nur lesende Zugriffe entstehen keine Probleme Beispielszenario Design 19 Betriebssysteme Wintersemester 2015 Patrick Kendzo

20 Interprozesskommunikation (2) Beispielszenario (continued) Implementierung class Account private float balance; public void setbalance(float balance) this.balance = balance; public float getbalance() return balance; 20 Betriebssysteme Wintersemester 2015 Patrick Kendzo

21 Interprozesskommunikation (3) Beispielszenario (continued) Implementierung class Bank private Account[] account; public Bank() account = new Account[100]; for(int i = 0; i < account.length; i++) account[i] = new Account(); public void transfermoney(int accountnumber, float amount) float oldbalance = account[accountnumber].getbalance(); float newbalance = oldbalance + amount; account[accountnumber].setbalance(newbalance); 21 Betriebssysteme Wintersemester 2015 Patrick Kendzo

22 Interprozesskommunikation (4) Beispielszenario(continued) Implementierung class Clerk extends Thread private Bank bank; public Clerk(String name, Bank bank) super(name); this.bank = bank; start(); public void run() for(int i = 0; i < 10; i++) int accountnumber = (int) (Math.random() * 100); float amount = (int) (Math.random() * 1000) - 499; bank.transfermoney(accountnumber, amount); System.out.println(getName()+" <--> " +accountnumber +" und " +amount); 22 Betriebssysteme Wintersemester 2015 Patrick Kendzo

23 Interprozesskommunikation (5) Beispielszenario (continued) Implementierung public class Banking public static void main(string[] args) Bank mybank = new Bank(); new Clerk("Andrea Müller", mybank); new Clerk("Petra Schmitt", mybank); 23 Betriebssysteme Wintersemester 2015 Patrick Kendzo

24 Interprozesskommunikation (6) Beispielszenario (continued) Problemanalyse Was passiert wenn zwei Threads auf demselben Konto arbeiten? Stellen Sie sich vor: In der Methode transfermoney(...) der Klasse Bank wird nach dem Aufruf der Methode getbalance() auf einen anderen Thread umgeschaltet. Gefahr: Dieses eher selten vorkommende fehlerhafte Verhalten kann zum Verlust von Buchungen führen!! 24 Betriebssysteme Wintersemester 2015 Patrick Kendzo

25 Interprozesskommunikation (6) Beispielszenario (continued) Lösunganalyse Versuch 1: Überweisung in einer einzigen Java-Anweisung durchführen class Account private float balance; public void transfermoney(float amount) balance += amount; class Bank... public void transfermoney(int accountnumber, float amount) account[accountnumber].transfermoney(amount); Nicht Atomarität von Java-Anweisungen führen zur selben Problematik 25 Betriebssysteme Wintersemester 2015 Patrick Kendzo

26 Interprozesskommunikation (7) Beispielszenario (continued) Lösunganalyse Versuch 2: Nutzung eines Sperrattributs in der Klasse Bank class Bank private Account[] account; private boolean locked; public Bank() account = new Account[100]; for(int i = 0; i < account.length; i++) account[i] = new Account(); locked = false; public void transfermoney(int accountnumber, float amount) while(locked); locked = true; float oldbalance = account[accountnumber].getbalance(); float newbalance = oldbalance + amount; account[accountnumber].setbalance(newbalance); locked = false; 26 Betriebssysteme Wintersemester 2015 Patrick Kendzo

27 Interprozesskommunikation (8) Beispielszenario (continued) Lösunganalyse Versuch 2: Nutzung eines Sperrattributs in der Klasse Bank (continued) Lösungsvorschlag sieht richtig aus. Aber der Ansatz hat ein paar Probleme: Problem 1: Die Nebenläufigkeit wird hier unnötig eingeschränkt Sperre für die gesamte Bank statt jedes Konto einzeln Problem 2: Lösung nicht effizient Dank Aktives Warten (Busy waiting, polling) Viel Rechenzeit geht verloren wegen Nichstun Problem 3: Buchungen können troztdem immer noch verloren gehen!! 27 Betriebssysteme Wintersemester 2015 Patrick Kendzo

28 Interprozesskommunikation (9) Beispielszenario (continued) Lösunganalyse Versuch 3: Nutzung des Schlüsselwortes synchronized class Bank private Account[] account; public Bank() account = new Account[100]; for(int i = 0; i < account.length; i++) account[i] = new Account(); public void synchronized transfermoney(int accountnumber, float amount) float oldbalance = account[accountnumber].getbalance(); float newbalance = oldbalance + amount; account[accountnumber].setbalance(newbalance); 28 Betriebssysteme Wintersemester 2015 Patrick Kendzo

29 Interprozesskommunikation (10) Beispielszenario (continued) Lösunganalyse Versuch 3: Nutzung des Schlüsselwortes synchronized Bedeutung Sperre für jedes Objekt Vor der Ausführung einer synchronized-methode wird gewartet bis die Sperre frei ist, dann wird sie gesetzt und am Schluss wieder freigegeben Dies geschieht ohne aktives Warten (Ineffizienzproblematik) Gegenseitiger Ausschluss erfolgt ohne Problem (Inkorrektheitsproblematik) 29 Betriebssysteme Wintersemester 2015 Patrick Kendzo

30 Interprozesskommunikation (11) Beispielszenario (continued) Lösunganalyse Versuch 3: Nutzung des Schlüsselwortes synchronized Schlussfolgerung Eine synchronized-methode kann zu einem Zeitpunkt nur von einem Thread auf das selbe Objekt angewendet werden. Parallelität beim Aufruf unterschiedlicher synchronized-methoden der selben Klasse, die auf das selbe Objekt angewendet werden. Parallelität beim Aufruf von synchronized- und nicht synchronized-methoden der selben Klasse, die auf das selbe Objekt angewendet werden. Parallelität beim Aufruf von synchronized-methoden der selben Klasse, die auf unterschiedliche Objekte angewendet werden. 30 Betriebssysteme Wintersemester 2015 Patrick Kendzo

31 Regel: Notwendigkeit von Synchronisation Wenn von mehreren Threads auf ein Objekt zugegriffen wird, wobei mindestens ein Thread den Zustand des Objekts ändert, dann müssen alle lesenden und schreibenden Zugriffe mit synchronized erfolgen. Auf welche primitiven Daten kann in Java von mehreren Threads aus zugegriffen werden? Antwort: Nur auf Attribute von Klassen (für nicht-static-attribute: nur relevant, falls mehrere Threads auf das selbe Objekt zugreifen) Nicht auf lokale Variablen einer Methode Begründung: Jeder Thread besitzt seinen eigenen Keller (Stack) Darauf werden abgelegt (u.a.): lokale Variablen, Rücksprungadressen für Methodenaufrufe 31 Betriebssysteme Wintersemester 2015 Patrick Kendzo

32 Literatur [1] Java JDK 8 API Specification, [2] Java Tutorial, 32 Betriebssysteme Wintersemester 2015 Patrick Kendzo

Parallele und verteilte Anwendungen in Java

Parallele und verteilte Anwendungen in Java Parallele und verteilte Anwendungen in Java Bearbeitet von Rainer Oechsle 3., erweiterte Auflage 2011. Buch. 416 S. Hardcover ISBN 978 3 446 42459 3 Format (B x L): 20,3 x 24,5 cm Gewicht: 1068 g Weitere

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation

Mehr

Parallele und verteilte Anwendungen in Java

Parallele und verteilte Anwendungen in Java Rainer Oechsle Parallele und verteilte Anwendungen in Java ISBN-10: 3-446-40714-6 ISBN-13: 978-3-446-40714-5 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40714-5

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE22-NutzungVonKlassen (Stand 28.09.2012) Aufgabe 1: Entwickeln Sie in Eclipse auf der Basis der vorgestellten Java-GUI-Klassen ein Java- Programm, das

Mehr

Nebenläufige Programmierung I

Nebenläufige Programmierung I Nebenläufige Programmierung I Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS06 2 Ziele Grundlegende Begriffe der nebenläufigen Programmierung verstehen lernen Nebenläufige Programme

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Musterlösungen zur Klausur Informatik 3

Musterlösungen zur Klausur Informatik 3 Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus

Zur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Nebenläufigkeit mit Java

Nebenläufigkeit mit Java Nebenläufigkeit mit Java Einheit 01: Einführung in das Java-Threadkonzept Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Organisatorisches Ziele, Aufbau und Inhalte Zielgruppe,

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Dokumentation des Projektes Tic Tac Toe

Dokumentation des Projektes Tic Tac Toe Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.

Mehr

Betriebssysteme. Wintersemester Kapitel 3 Speicherverwaltung. Patrick Kendzo

Betriebssysteme. Wintersemester Kapitel 3 Speicherverwaltung. Patrick Kendzo Betriebssysteme Wintersemester 2015 Kapitel 3 Speicherverwaltung Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Ein- / Ausgabe und Dateisysteme Zusammenfassung

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel

Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2012/2013 - Dr. Günter Kniesel Übungsblatt 10 - Lösungshilfe Aufgabe 1. CRC-Karten (7 Punkte) Es geht um die Modellierung der folgenden Bibliotheks-Anwendung:

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

ProgWerkstatt 7. Dezember 2006 Tipps & Tricks. GUI Programmierung

ProgWerkstatt 7. Dezember 2006 Tipps & Tricks. GUI Programmierung ProgWerkstatt 7. Dezember 2006 Tipps & Tricks GUI Programmierung Seite 2 GUI Programmierung Überblick 1 Motivation 2 Grundlagen Java Coding Conventions Javadoc Comments GroupLayout unter NetBeans 3 OpenOffice

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

MCRServlet Table of contents

MCRServlet Table of contents Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient

Mehr

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste

Mehr

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt

Mehr

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Parallele Prozesse. Prozeß wartet

Parallele Prozesse. Prozeß wartet Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:

Mehr

Einführung Verteilte Systeme - Java Threads I -

Einführung Verteilte Systeme - Java Threads I - Einführung Verteilte Systeme - Java Threads I - Prof. Dr. Michael Cebulla 20. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 38 M. Cebulla Verteilte Systeme Gliederung Wiederholung:

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Threading. Arthur Zaczek. Aug 2015

Threading. Arthur Zaczek. Aug 2015 Arthur Zaczek Aug 2015 1 Threading 1.1 Motivation Threading erlaubt die gleichzeitige Ausführung von mehreren Programmteilen. mehrere gleichzeitige Anfragen: Webserver, Datenbank (zu) lange laufende Berechnungen:

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Thread-Konzept in objektorientierten Programmiersprachen. Threads. Threads in Java

Thread-Konzept in objektorientierten Programmiersprachen. Threads. Threads in Java Thread-Konzept in objektorientierten Programmiersprachen 1 Threads ein Thread ist ein eigenständiges Programmfragment, das parallel zu anderen Teilen eines Programmes ablaufen kann alle Threads eines Programmes

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Java Generics & Collections

Java Generics & Collections Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Innere Klassen 13.06.07 1 / 11

Mehr