Java3D - Teil 6. Michael Haller

Größe: px
Ab Seite anzeigen:

Download "Java3D - Teil 6. Michael Haller"

Transkript

1 Java3D - eil 6 Michael Haller

2 Inhalt der Vorlesung Interaktion 2: astaturgesteuerte Navigation Mausinteraktion Mausgesteuerte Navigation Animation Picking 2

3 Wir erinnern uns... public void initialize(){ } // set initial wakeup condition conditions = new WakeupCriterion[2]; conditions[0] = new WakeupOnAWEvent(KeyEvent.KEY_PRESSED); conditions[1] = new WakeupOnElapsedime(100); wakeupcondition = new WakeupOr(conditions); wakeupon(conditions[0]); 3

4 Motivation Bisher: Neu: ViewPlatform war statisch Andere Perspektive durch direkte Szenen-Manipulation Dynamische ViewPlatform Szene bleibt statisch 4

5 SimpleUniverse SimpleUniverse() SimpleUniverse(Canvas3D canvas) SimpleUniverse(ViewingPlatform viewingplatform, Viewer viewer) void addbranchgraph(branchgroup bg) Canvas3D getcanvas() Canvas3D getcanvas(int canvasnum) Locale getlocale() Viewer getviewer() ViewingPlatform getviewingplatform 5

6 ViewingPlatform ViewingPlatform() ViewPlatform getviewplatform() ransformgroup getviewplatformransform() void setnominalviewingransform() SimpleUniverse su = new SimpleUniverse( new Canvas3D()); ransformgroup vpt = su.getviewplatformransform.getviewplatformransf orm(); 6

7 KeyNavigatorBehavior Verarbeitung der astatureingabe Bewegung ist mit Beschleunigung realisiert, d.h. die Bewegung fängt langsam an und wird dann schneller. 7

8 KeyNavigatorBehavior II KeyNavigatorBehavior(ransformGroup targetg) void initialize() void processstimulus(enumeration criteria) Rezept: Erzeugen eines KeyNavigatorBehavior Objekts, das einen ransformgroup-knoten referenziert Setzen eines Schedulingbereichs für den KeyNavigatorBehavior Einhängen des KeyNavigatorBehaviors in den Szenengraphen 8

9 KeyNavigatorApp... public class KeyNavigatorApp extends Applet { Shape3D createpyramid(){...} Shape3D createland(){...} public BranchGroup createscenegraph(simpleuniverse su) { // Create the root of the branch graph ransformgroup vprans = null; BranchGroup objroot = new BranchGroup(); Vector3f translate = new Vector3f(); ransform3d 3D = new ransform3d(); ransformgroup G = null; objroot.addchild(createland());... KeyNavigatorExample.zip 9

10 KeyNavigatorApp II... SharedGroup share = new SharedGroup(); share.addchild(createpyramid()); float[][] position = {{ 0.0f, 0.0f, -3.0f}, { 6.0f, 0.0f, 0.0f}, { 6.0f, 0.0f, 6.0f}, { 3.0f, 0.0f, -10.0f}, { 13.0f, 0.0f, -30.0f}, {-13.0f, 0.0f, 30.0f}, {-13.0f, 0.0f, 23.0f}, { 13.0f, 0.0f, 3.0f}}; for (int i = 0; i < position.length; i++){ translate.set(position[i]); 3D.setranslation(translate); G = new ransformgroup(3d); G.addChild(new Link(share)); objroot.addchild(g); } 10

11 KeyNavigatorApp III }... vprans = su.getviewingplatform().getviewplatformransform(); translate.set( 0.0f, 0.3f, 0.0f); 3D.setranslation(translate); vprans.setransform(3d); KeyNavigatorBehavior keynavbeh = new KeyNavigatorBehavior(vprans); keynavbeh.setschedulingbounds(new BoundingSphere(new Point3d(),1000.0)); objroot.addchild(keynavbeh); objroot.compile(); return objroot; 11

12 KeyNavigatorApp IV public KeyNavigatorApp() { setlayout(new BorderLayout()); Canvas3D canvas3d = new Canvas3D(null); add("center", canvas3d); } SimpleUniverse simpleu = new SimpleUniverse(canvas3D); BranchGroup scene = createscenegraph(simpleu); simpleu.addbranchgraph(scene); public static void main(string[] args) { Frame frame = new MainFrame(new KeyNavigatorApp(), 256, 256); } } 12

13 Mausinteraktion Utility-Klassen für Mausinteraktion MouseRotate: Rotiert Objekt Mouseranslate: ransliert Objekt parallel zur Bildebene (XY-Ebene) MouseZoom: ransliert Objekte orthogonal zur Bildebene (Z-Achse) 13

14 Mausinteraktion Rezept für die Verwendung einer MouseBehavior- Klasse: Setzen der Read- und Write-Capabilities bei der G, die manipuliert werden soll Erzeugen eines MouseBehavior-Objekts Setzen der G Spezifikation eines Bounds für das MouseBehavior-Objekt Einhängen des MouseBehavior in den Szenengraphen 14

15 Mousegesteuerte Rotation public class MouseRotateApp extends Applet { public BranchGroup createscenegraph() { BranchGroup objroot = new BranchGroup(); ransformgroup objrotate = new ransformgroup(); objrotate.setcapability(ransformgroup.allow_ransform_wrie); objrotate.setcapability(ransformgroup.allow_ransform_read); objroot.addchild(objrotate); objrotate.addchild(new ColorCube(0.4)); MouseRotate mymouserotate = new MouseRotate(); (2) mymouserotate.setransformgroup(objrotate); (3) mymouserotate.setschedulingbounds(new BoundingSphere()); (4) objroot.addchild(mymouserotate); (5) objroot.compile(); return objroot; } (1) RobbyExample.zip 15

16 Mousebehaviorklasse MouseBehavior(int flags) MouseBehavior(ransformGroup tg) flags: MouseBehavior.INVER_INPU MouseBehavior.MANUAL_WAKEUP void initialize() void processmouseevent(java.awt.event.mouseevent evt) void processstimulus(java.util.enumeration criteria) void setransformgroup(ransformgroup transformgroup) void wakeup() 16

17 MouseRotate MouseRotate() MouseRotate(ransformGroup tg) MouseRotate(int flags) flags: MouseBehavior.INVER_INPU MouseBehavior.MANUAL_WAKEUP void setfactor(double factor) void setfactor(double xfactor, double yfactor) double getxfactor() // getyfactor void transformchanged(ransform3d transform) 17

18 Mouseranslate Mouseranslate() Mouseranslate (ransformgroup tg) Mouseranslate (int flags) flags: MouseBehavior.INVER_INPU MouseBehavior.MANUAL_WAKEUP void setfactor(double factor) void setfactor(double xfactor, double yfactor) double getxfactor() // getyfactor void transformchanged(ransform3d transform) 18

19 MouseZoom MouseZoom() MouseZoom(ransformGroup tg) MouseZoom(int flags) flags: MouseBehavior.INVER_INPU MouseBehavior.MANUAL_WAKEUP void setfactor(double factor) double getfactor() void transformchanged(ransform3d transform) 19

20 MouseNavigatorApp import java.applet.applet; import java.awt.borderlayout; import java.awt.frame; import com.sun.j3d.utils.applet.mainframe; import com.sun.j3d.utils.geometry.colorcube; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.behaviors.mouse.*; import javax.media.j3d.*; import javax.vecmath.*; import Axis; import java.awt.event.*; import java.util.enumeration;... MouseNavigatorApp.zip 20

21 MouseNavigatorApp II public class MouseNavigatorApp extends Applet { public BranchGroup createscenegraph(simpleuniverse su) { BranchGroup objroot = new BranchGroup(); ransformgroup vprans = null; BoundingSphere mousebounds = null; vprans = su.getviewingplatform().getviewplatformransform(); objroot.addchild(new ColorCube(0.4)); objroot.addchild(new Axis()); mousebounds = new BoundingSphere(new Point3d(), ); MouseRotate mymouserotate = new MouseRotate(MouseBehavior.INVER_INPU); mymouserotate.setransformgroup(vprans); mymouserotate.setschedulingbounds(mousebounds); objroot.addchild(mymouserotate); 21

22 MouseNavigatorApp III Mouseranslate mymouseranslate = new Mouseranslate(MouseBehavior.INVER_INPU); mymouseranslate.setransformgroup(vprans); mymouseranslate.setschedulingbounds(mousebounds); objroot.addchild(mymouseranslate); MouseZoom mymousezoom = new MouseZoom(MouseBehavior.INVER_INPU); mymousezoom.setransformgroup(vprans); mymousezoom.setschedulingbounds(mousebounds); objroot.addchild(mymousezoom); } objroot.compile(); return objroot; 22

23 Animation Interaktion: Szene ändert sich in Reaktion auf Benutzereingaben Animation: Szene ändert sich automatisch über einen bestimmten Zeitraum Beispiele für eine Animation: -Uhr - Planetensystem - Kleine Animationen der Objekte 23

24 Die Animation in Java3D Ein Interpolator-Behavior benötigt zwei Abbildungsfunktionen: f1: [t1,t2] [0, 1] 1.0 f1 :[ t1, t2] [0,1] 0.0 t1 t2 time f2: [0,1] [value1, value2] Z.B. Rotation, Farbe,... f2(x) = (value2-value1)*x 24

25 Rezept für Animation Erzeugen des zu manipulierenden Objekts mit entsprechenden Capabilities Erzeugen eines Alpha-Objektes Erzeugen eines Interpolators mit Referenzen auf das Alpha-Objekt und das zu manipulierende Objekt Setzen eines Schedulingbereichs im Interpolator Hinzufügen des Interpolators zum Szenengraphen 25

26 Die Klasse Alpha alpha value Duration of one cycle (1) (2) (3) (4) (5) (6) (7) time Program start time (1) rigger-ime (2) Phase delay (3) 4 phases of Alpha Waveform: increasingalphaduration (4) alphaatoneduration (5) decreasingalphaduration (6) alphaatzeroduration (7) 26

27 Die Klasse Alpha II Die Verwendung der Phasen lässt sich steuern über: INCREASING_ENABLE (default) DECREASING_ENABLE INCREASING_ENABLE DECREASING_ENABLE... 27

28 Die Klasse Alpha III Alpha() Alpha(int loopcount, long increasingalphaduration) Alpha(int loopcount, int mode, long triggerime, long phasedelayduration, long increasingalphaduration, long increasingalpharampduration, long alphaatoneduration) Bsp. Alpha alpha = new Alpha(-1, 60000) // Object loops continuously with 12 hour period Alpha timer = new Alpha (-1, 12*60*60*1000); 28

29 Die Interpolatoren Man benötigt Interpolatoren, um anzugeben, was man überhaupt animieren möchte bzw. wie man es animieren möchte Man interpoliert: Bewegungen: Rotation, Position Materialeigenschaften: ransparenz, Farben PositionInterpolator als Beispiel: PositionInterpolator (Alpha alpha, ransformgroup target) PositionInterpolator posint = new PositionInterpolator (alpha, objmove); 29

30 InterpolatorApp Folgende Animationen finden in dieser Applikation statt: Das Auto......fährt von links nach rechts...rotiert...wird skaliert...verändert die Farbe...wird transparent...verändert sein Aussehen (Auto->Würfel,...) 30

31 InterpolatorApp II public BranchGroup createscenegraph() { // Initialisierung + Capabilities // Alpha Objekt + Interpolatoren } // Bereich + in Szenengraph reinhängen InterpolatorApp.zip 31

32 InterpolatorApp III public BranchGroup createscenegraph() { // Initialisierung + Capabilities BranchGroup objroot = new BranchGroup(); ransform3d t3d = new ransform3d(); BoundingSphere bounds = new BoundingSphere(); ransformgroup objmove = new ransformgroup(); objmove.setcapability(ransformgroup.allow_ransform_wrie);... Material objcolor = new Material(); objcolor.setcapability(material.allow_componen_wrie); ransparencyattributes objransp = new ransparencyattributes(); objransp.setcapability(ransparencyattributes.allow_value_wrie); objransp.setransparencymode(ransparencyattributes.blended); } Switch objswitch = new Switch(); objswitch.setcapability(switch.allow_swich_wrie);... 32

33 InterpolatorApp IV public BranchGroup createscenegraph() { // Initialisierung + Capabilities... // Alpha Objekt + Interpolatoren Alpha alpha = new Alpha (-1, Alpha.INCREASING_ENABLE + Alpha.DECREASING_ENABLE, 0, 0, 2000, 0, 1000, 2000, 0, 1000); } // create position interpolator PositionInterpolator posint = new PositionInterpolator (alpha, objmove); posint.setschedulingbounds(bounds); posint.setstartposition(-1.0f);... // create switch value interpolator SwitchValueInterpolator swiint = new SwitchValueInterpolator (alpha, objswitch); swiint.setschedulingbounds(bounds); 33

34 InterpolatorApp V public BranchGroup createscenegraph() { // Initialisierung + Capabilities... // Alpha Objekt + Interpolatoren... // Bereich + in Szenengraph reinhängen } t3d.setranslation(new Vector3f(0.0f, 0.8f, 0.0f)); ransformgroup objmovepos = new ransformgroup(t3d); objroot.addchild(objmovepos); objmovepos.addchild(objmove); objmove.addchild(createcar(0.4f, 0.4f, false, true)); objroot.addchild(posint);... 34

35 Interpolatoren ColorInterpolator PathInterpolator PositionInterpolator RotationInterpolator ScaleInterpolator SwitchValueInterpolator ransparencyinterpolator 35

36 Lokomotiv-Beispiel Ziel: Lokomotive bewegt sich, wenn der Benutzer eine aste betätigt. Sobald eine weitere aste gedrückt wird, stoppt der Zug. Umsetzung: In unserem Fall wollen wir das ganze ohne Zuhilfenahme einer Animation implementieren. WakeUp: WakeupOnAWEvent(int AWid) WakeupOnElapsedime(long milliseconds) WakeupOnElapsedFrames(int framecount Eine Animation geht auch ohne Alpha + Interpolatoren 36

37 Lokomotiv-Beispiel II public void initialize(){ conditions = new WakeupCriterion[2]; conditions[0] = new WakeupOnAWEvent(KeyEvent.KEY_PRESSED); conditions[1] = new WakeupOnElapsedime(50); wakeupcondition = new WakeupOr(conditions); wakeupon(conditions[0]); } public void processstimulus(enumeration criteria){... buttonpress = false; while(criteria.hasmoreelements()) { wakeup = (WakeupCriterion)criteria.nextElement(); if (wakeup instanceof WakeupOnAWEvent) { evt = ((WakeupOnAWEvent)wakeup).getAWEvent();... } }... LokoAnimation.zip 37

38 Lokomotiv-Beispiel III... if (buttonpress) { // Change State to the opposite true -> false, false -> true go =!go; System.out.println("Key pressed - go = " + go + " "); } if (go) { // Change position of train... wakeupon(wakeupcondition); } else { this.wakeupon(new WakeupOnAWEvent(KeyEvent.KEY_PRESSED)); } } 38

39 Picking Display Objekt Mauszeiger Pickray - Benutzer möchte ein Objekt am Bildschirm anklicken und es anschließend manipulieren - Interaktives Auswählen eines oder mehrerer Objekte der Szene - Auswahl zu einem manipulierenden Knoten ist nicht immer eindeutig 39

40 Picking II Picking ist natürlich sehr rechenintensiv => Bounds verwenden Methoden für Nodes: void setbounds(bounds bounds) void setpickable(boolean pickable) Capabilities für Nodes: ENABLE_PICK_REPORING ALLOW_BOUNDS_READ WRIE ALLOW_PICKABLE_READ WRIE 40

41 Verwendung von Picking-Utility-Klassen Vordefinierte Picking Behaviors: PickingRotateBehavior PickingranslateBehavior PickingZoomBehavior Einfaches Rezept: Erzeuge Szenengraph Erzeuge PickingBehavior-Objekt Füge Behavior in den Szenengraphen hinzu Setze Capabilities für die Knoten 41

42 Verwendung von Picking-Utility-Klassen 1 2 public BranchGroup createscenegraph(canvas3d canvas) { BranchGroup objroot = new BranchGroup(); ransformgroup objrotate = null; PickRotateBehavior pickrotate = null; ransform3d transform = new ransform3d(); BoundingSphere behavebounds = new BoundingSphere(); 4 // create ColorCube and PickRotateBehavior objects transform.setranslation(new Vector3f(-0.6f, 0.0f, -0.6f)); objrotate = new ransformgroup(transform); objrotate.setcapability(ransformgroup.allow_ransform_wrie); objrotate.setcapability(ransformgroup.allow_ransform_read); objrotate.setcapability(ransformgroup.enable_pick_reporing); objroot.addchild(objrotate); objrotate.addchild(new ColorCube(0.4)); 42

43 Verwendung von Picking-Utility-Klassen pickrotate = new PickRotateBehavior(objRoot,canvas, behavebounds); objroot.addchild(pickrotate); // add a second ColorCube object to the scene graph transform.setranslation(new Vector3f( 0.6f, 0.0f, -0.6f)); objrotate = new ransformgroup(transform); objrotate.setcapability(ransformgroup.allow_ransform_wrie); objrotate.setcapability(ransformgroup.allow_ransform_read); objrotate.setcapability(ransformgroup.enable_pick_reporing); objroot.addchild(objrotate); objrotate.addchild(new ColorCube(0.4)); // Let Java 3D perform optimizations on this scene graph. objroot.compile(); 43

44 PickXXXBehavior PickRotateBehavior: Rotiert selektiertes Objekt PickranslateBehavior: ransliert selektiertes Objekt PickZoomBehavior: Zoom vom selektierten Objekt Alle werden von PickMouseBehavior abgeleitet MousePickExample.zip 44

45 Benutzerdefiniertes Picking Erlauben der Selektierbarkeit von Knoten durch Methoden der Klasse Node (Capabilities setzen) Auslösen einer Selektion durch Pick-Methoden der Klasse Locale oder BranchGroup Pick-Methoden bekommen als Argument einen PickShape (PickBounds oder PickPoints) Pick-Methoden liefern SceneGraphPath(s) 45

46 PickMouseBehavior Erzeugen eines Behaviors, das durch Mausevents aktiviert wird Bei Eintreten eines Mausevents: Erzeuge eines PickRays vom Auge durch den 2D-Punkt auf dem Bildschirm Initieren einer Selektion aller vom Strahl getroffenen Objekte Resultat: Sortierte Liste der Pfade aller getroffenen Objekte Zugreifen auf das 1. getroffene Objekt Manipulieren des Objekts Erneutes Setzen der WakeupCondition für Mausevents 46

47 PickMouseBehavior II Konstruktor: PickMouseBehavior(Canvas3D c, BranchGroup r, Bounds b) Fields: PickObject pickscene Methoden: void initialize() void processstimulus() abstract void updatescene(int xpos, int ypos) 47

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik (teilweise Wiederholung zu Vorlesung Digitale Medien) B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung

Mehr

Aktuelle Binaries: Version 1.5.2; download: https://java3d.dev.java.net/binary-builds.html. + Visual Toolkit (VTK -> KITWARE)

Aktuelle Binaries: Version 1.5.2; download: https://java3d.dev.java.net/binary-builds.html. + Visual Toolkit (VTK -> KITWARE) 3. Java 3D 3.1 Grundlagen - Hierarchie von Java-Klassen, die eine Schnittstelle zur Darstellung und Interaktion von dreidimensionalen grafischen Szenen bilden. - Die geometrischen Objekte werdenin einem

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

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

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

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

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel FB Physikalische Technik Musterlösungen Teil 4 Aufgabe 1 package teil4; import javax.swing.*; public class Ei { int haltung, ident; String

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

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Selbststudium OOP4 Auftrag

Selbststudium OOP4 Auftrag Selbststudium OOP4 Auftrag Kapitel 3.6 1. Wie deklarieren Sie eine Referenzvariable? Mit new z.b. Student studenta = new Stundent( Meier ); 2. Zeichnen Sie das Objektdiagramm zum BlueJ Picture Projekt

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

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

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println("Current Bank balance: " + b.

// Zeigt den insgesamt einbezahlten Betrag auf der Bank. // Muss 1600 GE sein. System.out.println(Current Bank balance:  + b. / Testtreiberklasse, welche das Bankensystem testet. Es werden neue Bankkonten angelegt und Geld deponiert, abgehoben und transferiert. public class Main { / Main Methode fuehrt bestimmte Testfaelle aus.

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Java Tipps für Lehrer. Table des matières. Einleitung

Java Tipps für Lehrer. Table des matières. Einleitung Java Tipps für Lehrer Table des matières Einleitung..1 Tipp 1: Gültige Objekte erzeugen.2 Tipp 2: Objekte nicht wiederverwenden.3 Tipp 3: Direkt auf die eigenen Attribute zugreifen4 Tipp 4: Ausgabe-Strings

Mehr

3D Modellierung. Masterstudium Informatik Vertiefungsrichtung Computer Graphics Sommersemester 2008. 3D Modellierung. Prof. Dr.-Ing. H.-P.

3D Modellierung. Masterstudium Informatik Vertiefungsrichtung Computer Graphics Sommersemester 2008. 3D Modellierung. Prof. Dr.-Ing. H.-P. Masterstudium Informatik Vertiefungsrichtung Computer Graphics Sommersemester 2008 1 Bild aus der Abhandlung "Underweysung der Messung" von Albrecht Dürer, 1525 2 ... knapp 500 Jahre später beschäftigt

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

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

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung Matthias Bethke bethke@linguistik.uni-erlangen.de Linguistische Informatik Universität Erlangen-Nürnberg Sommersemester

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

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

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

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

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

Ein Manager mit CardLayout layout/cards.java

Ein Manager mit CardLayout layout/cards.java 201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach

Mehr

Arrays Fortgeschrittene Verwendung

Arrays Fortgeschrittene Verwendung Arrays Fortgeschrittene Verwendung Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Arrays: Wiederholung

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

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

Arrays von Objekten. 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-12-13/infoeinf WS12/13 Arrays: Wiederholung Ein Array ist ein Tupel von Elementen gleichen

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

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Virtual Reality und 3D-Stadtmodelle

Virtual Reality und 3D-Stadtmodelle Virtual Reality und e Prof. Dr.-Ing. Ralf Bill Institut für Geodäsie und Geoinformatik Fachbereich Landeskultur und Umweltschutz Universität Rostock VR-3D-2003 1 VR-3D-2003 2 Virtueller Friedhof Virtual

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

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Klausur vom 14. Juni 2004. Informatik 4

Klausur vom 14. Juni 2004. Informatik 4 Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik, Burgdorf Klasse: EV02-1 Name, Vorname: Klausur vom 14. Juni

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

1. Der Einstieg in Java

1. Der Einstieg in Java 1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen

Mehr

Kapitel 14. Systemarchitektur

Kapitel 14. Systemarchitektur 1 Kapitel 14 Ziele 2 Grundprinzipien der verstehen Schichtenarchitekturen kennenlernen Modelle und Programme mit Paketen strukturieren Eine Architektur für eine einfache Bankanwendung konstruieren Grundprinzipien

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

Mehr

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

Arrays von Objekten. 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

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java Smalltalk versus Java Gliederung Einführung Geschichte sprachliche Aspekte technische Aspekte theoretische Aspekte praktische Aspekte Fazit Einführung - Merkmale Objektorientierung Einführung - Merkmale

Mehr

2015-06-11 Tagesprogramm

2015-06-11 Tagesprogramm 1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme

Mehr

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf

Teil II. Objektorientierte Programmierung und objektorientierter Entwurf Teil II Objektorientierte Programmierung und objektorientierter Entwurf 39 Kapitel 8 Robuste Programme durch Ausnahmebehandlung Ziele: Lernen, robuste Programme zu schreiben Ausnahmen als Objekte verstehen

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Meeting C++ C++11 R-Value Referenzen

Meeting C++ C++11 R-Value Referenzen Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Programmiervorkurs SS 2011

Programmiervorkurs SS 2011 Programmiervorkurs SS 2011 Objekte und Vererbung Programmiervorkurs SS 2011 Wir erinnern uns an Montag public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!");

Mehr

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

Mehr

Web-Anwendungen mit Arquillian testen

Web-Anwendungen mit Arquillian testen Michael Kotten open knowledge @michaelkotten @_openknowledge Wozu denn testen? Ich mach doch keine Fehler! Wozu denn testen? > Notwendig bei komplexen Systemen > Sicherung von > Qualität > Funktionalität

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Einführung in die Programmierung mit BlueJ

Einführung in die Programmierung mit BlueJ Einführung in die Programmierung mit BlueJ Thema 1 Grundlagen der Programmierung mit BlueJ Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2013/14 Java 1991-92 Java (1995) Anwendungsgebiet:

Mehr

Literatur. Spring was ist das?

Literatur. Spring was ist das? Literatur [11-1] Wolff, Eberhard: Spring 3. 3. Auflage, 2010, dpunkt [11-2] Walls, Craig: Spring im Einsatz. 2. Auflage, 2012, Hanser [11-3] http://docs.spring.io/spring-framework/docs/current/spring-frameworkreference/pdf/spring-framework-reference.pdf

Mehr

Web-Services Implementierung mit Java

Web-Services Implementierung mit Java Web-Services Implementierung mit Java J. Heinzelreiter WS 2004/05 Java-APIs für Web-Services (1) Anwendungs-Code JAXR JAXM JAX-RPC SAAJ SOAP/SwA JWSDL WSDL XML/XML-Schema Web-Services/Java - 2 Java-APIs

Mehr

Willkommen zu Vorlesung+Praktikum. Graphische Datenverarbeitung

Willkommen zu Vorlesung+Praktikum. Graphische Datenverarbeitung Einführung Willkommen zu Vorlesung+Praktikum Graphische Datenverarbeitung Einführung zur Person: Harald Gläser Studium und Promotion als Physiker Zweitstudium Informatik Berufstätigkeit bei Philips Research

Mehr

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE 1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

11: Echtzeitbetriebssystem ucos-ii

11: Echtzeitbetriebssystem ucos-ii 11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren

Mehr

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services: 0BBA Karlsruhe, Vorlesung Programmieren, Web Services 1BAufgabe 1 Tomcat um das AXIS-Framework erweitern : Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

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

Exceptions: Parameterprüfung import java.io.ioexception;

Exceptions: Parameterprüfung import java.io.ioexception; PPK2 Java Exceptions, Dateien Seite 1 von 31 Exceptions: Parameterprüfung import java.io.ioexception; public class Parameters public static String Methode(String str,exception obj,int index, String[] array)

Mehr

Object Relational Mapping Layer

Object Relational Mapping Layer Object Relational Mapping Layer Views Controlers Business logic GUI OO-application logic Object-relational-Mapping Relational DBMS PHP (propel) 1/18 Propel - Persistance Layer OR-Mapper für PHP Portierung

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Suchen und Sortieren

Suchen und Sortieren (Folie 69, Seite 36 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner, rechte Kinder größer als Elternknoten Externe und interne Knoten Externe Knoten

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Android Java Specifics / Basic IO

Android Java Specifics / Basic IO Dalvik virtual machine Registermaschine anstelle einer Stackmaschine Optimiert für geringen Speicherverbrauch Umwandlung von.class Dateien in.dex-format mit Hilfe von dx Jedes Programm läuft als eigener

Mehr

Fachpraktikum Graphische Benutzungsoberflächen Sommersemester 2010. Michael Wörner, Michael Raschke, Bernhard Schmitz. Einführung in Flash

Fachpraktikum Graphische Benutzungsoberflächen Sommersemester 2010. Michael Wörner, Michael Raschke, Bernhard Schmitz. Einführung in Flash Fachpraktikum Graphische Benutzungsoberflächen Sommersemester 2010 Michael Wörner, Michael Raschke, Bernhard Schmitz Einführung in Flash Die Entwicklungsumgebung Flash Builder ist kommerzielle Software

Mehr

Generische Datenstrukturen

Generische Datenstrukturen Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung

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

Typische Probleme. 7. Performance und Speicherauslastung. Parameter von java mit Performance-Einfluss. Parameter von javac mit Performance-Einfluss

Typische Probleme. 7. Performance und Speicherauslastung. Parameter von java mit Performance-Einfluss. Parameter von javac mit Performance-Einfluss 7. Performance und Speicherauslastung Java-Parameter mit Performance-Einfluss Versteckte Speicherlecks Direkte Zeitmessung in Java Konzept von Performance-Messwerkzeugen Netbeans-Profiler Software-Qualität

Mehr

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

Das Monitorkonzept Brinch-Hansen

Das Monitorkonzept Brinch-Hansen Das Monitorkonzept (nach Hoare/Brinch Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger Ausschluss, mutual exclusion. Geschützte

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Assertions (Zusicherungen)

Assertions (Zusicherungen) April 10, 2005 Oberseminar Software-Entwicklung Inhalt 1. Einführung (Motivation, Tony Hoare, Programmverifikation) 2. Design by Contract (Idee, Eiffel) 3. Praxis: Programming by Contract for Python 4.

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr