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

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

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

3D-Grafik und -Animation: Java3D

3D-Grafik und -Animation: Java3D 3D-Grafik und -Animation: Java3D Hauptseminar Virtuelle Präsenz Wintersemester 2003/2004 Marco Jahn Inhaltsverzeichnis 1 Einleitung... 3 2 Java3D Grundlagen... 3 2.1 Die Java3D API... 3 2.2 Aufbau eines

Mehr

Java 3D Interaktionen

Java 3D Interaktionen Java 3D Interaktionen Ausarbeitung zum Seminar Java 3D im 7.Semester unter Leitung von Prof. Dr. W. Heinzel zum Thema Interaktionen von Stefan Bohl Gliederung: 1. Allgemeines, Grundlagen Interaktionen

Mehr

Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D

Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D Grafisch-Interaktive Systeme Prof. Dr. Heinzel Vertiefungsgebiet Embedded Systems Bachelor WS 2007 / 2008 Hochschule Fulda Erstellung geometrischer Figuren und Verwendung von Texturen in Java 3D Markus

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

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

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

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

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

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

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

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Swing :Komponenten I (Teil 2)

Swing :Komponenten I (Teil 2) l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde

Mehr

6 Speicherorganisation

6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für

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

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

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

Ü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

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

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Szenengraph-Architekturen - 1 Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Hauptseminar Medieninformatik Christina Eicher 10. Mai 2004 Inhalt Szenengraph-Architekturen - 2 Teil 1: Szenengraphen

Mehr

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse

Mehr

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 equals und hashcode SortedSet NavigableSet Assoziative Container 2 / 32 HashSet mit eigener Klasse Wie kann man einen

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Session 1: Classes and Applets

Session 1: Classes and Applets Session 1: Classes and Applets Literature Sprechen Sie Java, ISBN 3-89864-117-1, dpunkt deutsch Java für Studenten, ISBN 3-8273-7045-0, PearsonStudium deutsch Java in a Nutshell, ISBN: 0-59600-283-1, O'Reilly

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

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

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

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

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

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

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

Mehr

Einbindung der Tastatur

Einbindung der Tastatur Einbindung der Tastatur Auch die Tastatur kann man wie die Maus zur interaktiven Programmsteuerung verwenden. Bei der Maus ist stets klar, welche grafische Komponente bei einem Klick oder einer Bewegung

Mehr

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

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

Mehr

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

Mehr

Grundlagen der Java 3D- Programmierung

Grundlagen der Java 3D- Programmierung Grundlagen der Java 3D- Programmierung und deren exemplarische Umsetzung Verfasser: MATSE-Auszubildender am Institut für Leichtbau der RWTH Aachen, angehender Bachelor of Science Die vorliegende Arbeit

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

Probeklausur: Programmierung WS04/05

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

Mehr

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

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

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.5.8 Öffentliche und private Eigenschaften

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

Mehr

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

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

Graphische Programmierung: GUIs: graphical user interfaces

Graphische Programmierung: GUIs: graphical user interfaces Graphische Programmierung: GUIs: graphical user interfaces Ziel: Java -Programmierung und Handhabung von graphischen Benutzeroberflächen (in Applets) mehrere Fenster Fenster-Eigenschaften: aktiv oder inaktiv

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

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;

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

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

Mehr

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

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

Mehr

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

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

Mehr

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

von Anja Austermann Drag and Drop

von Anja Austermann Drag and Drop von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java

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

5.4 Klassen und Objekte

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

Mehr

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

Javakurs für Anfänger

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

Mehr

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

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

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale

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

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

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

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

Kapitel 6. Vererbung

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

Mehr

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

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

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Type Erasure in Java 5 Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Warum Generics? Containerklassen in Java 1.4 sind generisch nutzbar aber typunsicher. Public class LinkedList

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

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

Packages. Man kann mehrere Klassen in eine package zusammenfassen.

Packages. Man kann mehrere Klassen in eine package zusammenfassen. Packages Man kann mehrere Klassen in eine package zusammenfassen. Diese müssen dann in einem Unterverzeichnis liegen, dessen Name der Packagename ist. Jede Datei der Package muss mit package ; beginnen,

Mehr

Java-Programmierung. Remote Method Invocation - RMI

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

Mehr

Teil 1: Grundeigenschaften von Rechnern und Software

Teil 1: Grundeigenschaften von Rechnern und Software Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer

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

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

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

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

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 und ausführen können, Möglichkeiten der Kommentierung

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE24-KlassenUndObjekteFort (Stand 28.09.2012) Aufgabe 1: Implementieren Sie eine Klasse Student. Die Klasse soll eine Methode immatrikulieren haben,

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

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

Software-Engineering Software-Management

Software-Engineering Software-Management Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1 12.3

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Java Beans. http://java.sun.com/beans/

Java Beans. http://java.sun.com/beans/ Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit

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

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

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