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

Java 3D Einstiegs-Tutorial Teil 3

Java 3D Einstiegs-Tutorial Teil 3 Navigation mit der Maus Java 3D Einstiegs-Tutorial Teil 3 Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 Java 3D eröffnet mehrere Möglichkeiten, sich mittels Maus- Eingaben im virtuellen Raum zu

Mehr

Einige weitere Fähigkeiten und Anwendungsbeispiele

Einige weitere Fähigkeiten und Anwendungsbeispiele Java3D Eine Einführung Was ist Java3D Ansicht (Viewing Model) Sichtbare Objekte Animationen und Interaktionen Einfaches Beispielprogram Einige weitere Fähigkeiten und Anwendungsbeispiele Was ist Java3D?

Mehr

Einführung - Was ist Java3D?

Einführung - Was ist Java3D? Einführung - Was ist Java3D? - Java Package für interaktive 3D Grafik - High-level 3D Grafik API - Programmieren von interaktiven Anwendungen mit dreidimensionalen Inhalten - Nahtlose Integration in Java

Mehr

9. Digitale Verarbeitung 3-dimensionaler Darstellungen

9. Digitale Verarbeitung 3-dimensionaler Darstellungen 9. Digitale Verarbeitung 3-dimensionaler Darstellungen 9.1 Grundlagen der 3D-Computergrafik 9.2 3D-Modellierung am Beispiel VRML 9.3 Interaktion in 3-dimensionalen Darstellungen 9.4 3D-Grafik-Programmierung

Mehr

Der Szenegraph. Im Folgenden eine kurze Beschreibung der wichtigsten Knoten des Szenegraphen:

Der Szenegraph. Im Folgenden eine kurze Beschreibung der wichtigsten Knoten des Szenegraphen: Java 3d Java3D ist eine Bibliothek von Java Klassen zur Darstellung dreidimensionaler Graphik innerhalb von Java Applikationen und Applets. Die Struktur der darzustellenden Szene wird durch das Aufbauen

Mehr

Einführung in Java3D

Einführung in Java3D Einführung in Java3D SS05 Ashraf Abu Baker baker@gdv.cs.uni-frankfurt.de Varrentrappstr. 40-42 60486 Frankfurt am Main Raum 218 Java 3D ist eine high level Interaktive 3D Graphik-API (Application Programming

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

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

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

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

Java 3D Einstiegs-Tutorial Teil 1

Java 3D Einstiegs-Tutorial Teil 1 Java 3D Einstiegs-Tutorial Teil 1 Computergrafik - Übungen W. Kurth, E. Roth WS 2001/02 Java 3D: Application Programming Interface (API) für Java Erweiterung von Java um Klassenbibliotheken, die als Interface

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

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

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

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume 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

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

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

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

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

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

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 Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

Mehr

B6. 3D-Computergrafik mit Java

B6. 3D-Computergrafik mit Java B6. 3D-Computergrafik mit Java B6.1 Grundlagen der 3D-Computergrafik B6.2 Einführung in Java 3D B6.3 Animation B6.4 Geometrie, Material, Beleuchtung (Forts.) B6.5 Interaktion Literatur: D. Selman: Java

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

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

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

Einführung - Was ist Java3D?

Einführung - Was ist Java3D? Einführung - Was ist Java3D? - Java Package für interaktive 3D Grafik - High-level 3D Grafik API - Programmieren von interaktiven Anwendungen mit dreidimensionalen Inhalten - Nahtlose Integration in Java

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

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

3D Programmierung mit Java

3D Programmierung mit Java 3D Programmierung mit Java Daniel F. Abawi Professur für Graphische Datenverarbeitung J. W. Goethe-Universität Fachbereich 12 Danksagung / Quellenangabe Die Basis für diesen Foliensatz wurde von Dr. Paul

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

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

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

Ü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

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

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

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

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

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

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

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr

Programmieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

Programmieren für Ingenieure Sommer 2015. Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Ein Rechner Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Rechner sind überall Ihr Rechner

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

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Praktische Übung 'JUnit-Test'

Praktische Übung 'JUnit-Test' Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse

Mehr

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:

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

Java Beans. von Raoul Schneider

Java Beans. von Raoul Schneider Java Beans von Raoul Schneider Java Beans Was ist ein Bean? Idee Eigenschaften Die Beanbox Vom Java-Programm zum Java-Bean Beans in JBuilder Was ist ein Bean? Ein Bean ist eine eigenständige, wiederverwendbare

Mehr

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

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

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

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

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

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER

SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Fakultät Informatik, Institut für Angewandte Informatik, Professur Technische Informationssysteme SCHNELLEINSTIEG ZUM TOOL NODEBUILDER Betreuer: Dipl.-Ing. A. Cemal Özlük Dipl.-Inf. Uwe Ryssel ALLGEMEINE

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

Einführung in die Informatik Tools

Einführung in die Informatik Tools Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht

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

Ü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

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Sichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der

Sichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der Sichere E-Mail der Nutzung von Zertifikaten / Schlüsseln zur sicheren Kommunikation per E-Mail mit der Sparkasse Germersheim-Kandel Inhalt: 1. Voraussetzungen... 2 2. Registrierungsprozess... 2 3. Empfang

Mehr

Wie gestaltet man Online-Umfragen mit SurveyMonkey?

Wie gestaltet man Online-Umfragen mit SurveyMonkey? Wie gestaltet man Online-Umfragen mit SurveyMonkey? 1. Auf www.surveymonkey.com gehen. Zu allererst muss man sich registrieren. Auf der linken Seite auf Join now for free klicken. 2. Maske ausfüllen und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

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

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

Erklärung zu den Internet-Seiten von www.bmas.de

Erklärung zu den Internet-Seiten von www.bmas.de Erklärung zu den Internet-Seiten von www.bmas.de Herzlich willkommen! Sie sind auf der Internet-Seite vom Bundes-Ministerium für Arbeit und Soziales. Die Abkürzung ist: BMAS. Darum heißt die Seite auch

Mehr

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 4

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 4 Ludwig-Maximilians-Universität München Institut für Informatik Lehrstuhl für Mobile und Verteilte Systeme Prof. Dr. Claudia Linnhoff-Popien Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Adobe Flash CS4»3D-Tool«

Adobe Flash CS4»3D-Tool« Flash Tutorial Philipp Nunnemann Adobe Flash CS4»3D-Tool«Im folgenden Tutorial könnt Ihr das»3d-tool«in Adobe Flash CS4 kennenlernen. Das Tool erlaubt euch, Objekte im dreidimensionalen Raum zu bewegen.

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

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

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

Mehr

3. auf Symbol klicken. 2010 erstellt von Erika Völkel

3. auf Symbol klicken. 2010 erstellt von Erika Völkel Ein Tastendruck (oder Klick) und der Bildschirm (oder das Fenster) wird ausgedruckt oder abgespeichert. 1. Download (Freeware) im Internet: www.chip.de eingeben 2. bei Suche: hardcopy eingeben 3. auf Symbol

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung Grundlagen der Programmierung Prof. H. Mössenböck 14. Schrittweise Verfeinerung Entwurfsmethode für Algorithmen Wie kommt man von der Aufgabenstellung zum Programm? Beispiel geg.: Text aus Wörtern ges.:

Mehr

Fax einrichten auf Windows XP-PC

Fax einrichten auf Windows XP-PC Um ein PC Fax fähig zu machen braucht man einen sogenannten Telefon Anschluss A/B das heißt, Fax funktioniert im Normalfall nur mit Modem nicht mit DSL. Die meisten neueren PCs haben ein Modem integriert.

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

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

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr