Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Brainbug

Alter Hase

  • "Brainbug" is male
  • "Brainbug" started this thread

Posts: 150

Date of registration: Oct 6th 2002

Location: Hannover (Nordstadt)

Occupation: Hausmann

1

Wednesday, June 13th 2007, 12:56pm

Java Übung 8

Die neue Aufgabe ist draußen:

http://www.sim.uni-hannover.de/~xmb/SS07…n/uebung_08.pdf

Ich möchte hier gleich mal präventiv was dazu posten: Diese Aufgabe ist absichtlich sehr offen gehalten, um auf die verschiedenen Fähigkeiten der Teilnehmer einzugehen. Wer noch nicht richtig sicher ist oder weniger Zeit aufwenden will implementiert einfache Eigenschaften - und Experten, die mal "ein wenig rumspielen wollen" können die Aufgabe etwas großzügiger gestalten.

Wenn Ihr gar nichts mit dem gegebenen Diagramm anfangen könnt und ratlos vor dieser Aufgabe steht, nutzt die neue Sprechstunde!

Viel Spaß,

Lars

Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

2

Wednesday, June 13th 2007, 6:17pm

Ich musste erstmal selbst überlegen, vielleicht wurde das ja in der Vorlesung gesagt, aber ich wusste nicht mehr, in welcher Richtung die Pfeile gezeichnet werden bei UML-Klassendiagrammen.

Als Hilfestellung: In dem Beispiel ist die Klasse PKW eine Unterklasse von Auto und implementiert das Interface Taxi ... vielleicht ist das so verständlicher :-)

Übrigens: Nette Sache, das mit dem "Mal schauen, wie komplex ihrs machen könnt" .... :-)

Viel Spaß bei der Aufgabe
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

retr0virus

Trainee

  • "retr0virus" is male

Posts: 83

Date of registration: Oct 2nd 2006

Location: NRW -> Bad Oeynhausen

Occupation: B.Sc. Informatik, 8.Semester

3

Wednesday, June 13th 2007, 6:46pm

Als Hilfestellung kann auch das Programm "BlueJ" dienen.
Die Oberfläche sieht genau so aus wie das Diagramm in der Aufgabe und auch die "Pfeile" können einfach von einer Klasse zur anderen gezogen werden.
Wer Schwierigkeiten mit der Vererbung von Klassen hat, kann also einfach mal mit BlueJ "Pfeile malen" und gucken, was im Code dadurch passiert.
Ein Nichts im Nichts und ins Nichts vertrieben!
- Ren Dhark

Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

4

Wednesday, June 13th 2007, 11:47pm

Wenn du schon so kommst ... :P

Nicht unsinnvoll finde ich es, sich ein wenig mit UML zu beschäftigen. Ganz gute Erfahrungen habe ich mit ArgoUML gemacht, da kann man recht intuitiv Klassen zusammenklicken und sich den Code generieren lassen. Es gibt auch entsprechende Eclipse-Plugins ... und vor allem schon entsprechende Themen im Forum, den letzte informativen dazu gab es hier :)
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

5

Friday, June 15th 2007, 11:10am

Wobei man mit "Code generieren lassen" IMHO immer sehr vorsichtig sein sollte ...
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

6

Friday, June 15th 2007, 11:13am

das ist natürlich richtig .... wenn man nicht versteht, was der da generiert hat, sollte man sich also besser selbst dran versuchen.
Das ist genau einer der Hauptgründe, warum man ohne Erfahrung mit Java kein Eclipse nutzen soll, sondern erst später, weil man vorher gar nicht versteht, was (und vor allem wie viel) Arbeit die IDE da im Hintergrund macht.
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

7

Friday, June 15th 2007, 11:33am

Kann ich auch bestätigen. Meiner Erfahrung nach wird immer mehr Code generiert als erforderlich. Und nicht selten muss man den Code nachher sogar anpassen. Als "Anfänger" blickt man nicht mehr durch und weiß nicht warum wo geschrieben wird.
Meine Empfehlung: programmiert im Texteditor. Ich meine es ernst. Ich hatte es damals auch getan, heute bin ich glücklich drüber :)
With great power comes great responsibility

hamena314

Zerschmetterling

  • "hamena314" is male

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

8

Friday, June 15th 2007, 12:56pm

Sehe ich genauso.
Aber man sollte vielleicht rausstellen, dass das keine Verteufelung von Eclipse ist :D
Denn je mehr man damit arbeitet und weiss was passiert, desto mehr kann man erledigen, STRG-Leertaste ist mein bester Freund geworden und spätestens wenn's an Refactoring geht, bin ich froh, dass ich ungefähr weiss, was Eclipse überhaupt so leisten kann.

Doch zurück zur Übung:
Dieses mal steht ja die Vererbung im Vordergrund und da würde mich mal interessieren, wie überhaupt so die Vorgehensweise beim coden ist.
Ich habe zuerst die Oberklasse angelegt, dann alle Erweiterungen davon und am Ende das Interface.
Dabei habe ich bemerkt, dass ich ab und an Methoden mehrfach angelegt bzw. komplizierter gestaltet habe, als eigentlich nötig.

Wie sollte man also vorgehen? Denn bei dieser Übung hatte ich das Gefühl, hätte ich erst die Oberklasse und dann das Interface angelegt, hätte ich mir ein wenig Arbeit sparen können.

HAVE PHUN!
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

9

Friday, June 15th 2007, 1:31pm

Letzten Endes werden abstrakte Klassen und Interfaces ja vor allem zur Softwareplanung und Kontrolle eingesetzt. Du sollst dir dabei möglichst vorher überlegen, was deine Klassen letzten Endes können sollen und das dann sauber implementieren. Soviel zur Theorie :D

Mit ein bisschen EclipseHandling kriegt man die Aufgabe komplett in 5 minuten hin .... ist dann halt wirklich nur minimal, aber es geht. Per Hand tippen hätte locker doppelt so lange gedauert ;)
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

10

Friday, June 15th 2007, 1:40pm

Interessante Theorie :P Also Interfaces haben schon ein paar mehr Einsatzmöglichkeiten, vor allem in Java...

This post has been edited 1 times, last edit by "julianr" (Jun 15th 2007, 1:51pm)


hamena314

Zerschmetterling

  • "hamena314" is male

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

11

Friday, June 15th 2007, 2:34pm

Quoted

Original von Warui
(...)Mit ein bisschen EclipseHandling kriegt man die Aufgabe komplett in 5 minuten hin .... ist dann halt wirklich nur minimal, aber es geht. Per Hand tippen hätte locker doppelt so lange gedauert ;)


Ich hab' 10 gebraucht, hab' noch kommentiert. :D
Mit "Source --> Generate Getters & Setters" isses ein Kinderspiel, wobei ich mir eine Hochzeit von BlueJ und Eclipse wünschen würde, so ne grafische Programmierung macht Vererbung echt easy.
Aber auch im Bezug auf Interfaces finde ich es nicht verkehrt, die Aufgabe ruhig mit einem einfachen Editor zu probieren, so is zumindest mir klar geworden, wieviel Code man mit dem gezielten Einsatz von Interfaces und Vererbung sparen kann, Eclipse nimmt einem da sonst schon sehr viel ab.

Quoted

Original von julianr
Interessante Theorie :P Also Interfaces haben schon ein paar mehr Einsatzmöglichkeiten, vor allem in Java...

Wegen fehlender Erfahrung mit OOP und Java würde mich mal interessieren, welche das sind? Denn lange hab' ich mich mit Interfaces rumgequält und nicht kapiert, wozu die eigentlich sind. ^^

HAVE PHUN!
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

This post has been edited 3 times, last edit by "hamena314" (Jun 15th 2007, 3:44pm)


Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

12

Friday, June 15th 2007, 3:41pm

Quoted

Original von hamena314
Wegen fehlender Erfahrung mit OOP und Java würde mich mal interessiere, welche das sind? Denn lange hab' ich mich mit Interfaces rumgequält und nicht kapiert, wozu die eigentlich sind. ^^


Werden vor allem in Java auch dazu genutzt, um Klassen zu gruppieren. Manchmal geben die Interfaces dann gar keine Methoden vor, die implementiert werden sollen ... dann kann halt abgefragt werden, ob die Instanz der Klasse vom Typ meinKomischerTyp ist ;-)

Wenn ich beispielsweise ein Interface "zwielichtigerNachbar" (ohne weitere Eigenschaften) habe, und mehrere meiner Nachbarn fallen unter diese Kategorie, kann ich bei meiner Methode gutenMorgenSagen() entscheiden, ob mein Gegenüber ein zwielichtigerNachbar ist oder nicht, und dementsprechend darauf reagieren ^^

Siehe auch: Wikipedia / Javainsel / die Tutorials bei java.sun.com :-)
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

13

Friday, June 15th 2007, 4:28pm

Hamena: z.B. java.util.Collection: Das Interface gibt nur abstrakt an, was eine Collection alles kann. List und ArrayList und was auch immer können das Interface implementieren, und man kann einer Methode "void allenHalloSagen(Collection)" jede beliebige Implementation von Collection übergeben, und die Funktion kann mit den Funktionen des Interfacess allen Leuten in der Collection hallo sagen. -> Polymorphie.

Eine abstrakte Basisklasse ist nicht viel anders, nur gibt es hier schon eine Teil-Implementierung, zu der noch entscheidende Stellen fehlen und von der abgeleiteten Klasse ergänzt werden müssen.

Am besten einfach mal gucken, was für Interfaces es in der Java-Standardbibliothek gibt, was diese implementiert und was die implementierenden Klassen gemeinsam haben. Und noch am bestener selbst programmieren, alles andere hilft eh nicht langfristig.

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

14

Friday, June 15th 2007, 6:50pm

Quoted

Original von julianr
Eine abstrakte Basisklasse ist nicht viel anders, nur gibt es hier schon eine Teil-Implementierung, zu der noch entscheidende Stellen fehlen und von der abgeleiteten Klasse ergänzt werden müssen.

Dazu kommt natürlich noch, dass man beliebig viele Interfaces implementieren kann, Java allerdings nur single inherance kennt (also eine Klasse kann nur von genau einer anderen Klasse erben).
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Neo

Erfahrener Schreiberling

  • "Neo" is male

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

15

Friday, June 15th 2007, 7:44pm

Quoted

Original von Sinan
Kann ich auch bestätigen. Meiner Erfahrung nach wird immer mehr Code generiert als erforderlich. Und nicht selten muss man den Code nachher sogar anpassen. Als "Anfänger" blickt man nicht mehr durch und weiß nicht warum wo geschrieben wird.
Meine Empfehlung: programmiert im Texteditor. Ich meine es ernst. Ich hatte es damals auch getan, heute bin ich glücklich drüber :)


Also, ich verwende vim zum programmieren. Ist aber Geschmackssache...
Edit: ... vim zu benutzen ist einfach cool 8)
http://www.selflinux.org/selflinux/html/vim.html

This post has been edited 1 times, last edit by "Neo" (Jun 15th 2007, 7:48pm)


Neo

Erfahrener Schreiberling

  • "Neo" is male

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

16

Friday, June 15th 2007, 8:02pm

Quoted

Original von Warui


Siehe auch: Wikipedia / Javainsel / die Tutorials bei java.sun.com :-)


..und nicht zu vergessen www.javabuch.de

GentleGiant

Hamster Inside(R)

  • "GentleGiant" is male

Posts: 283

Date of registration: Oct 3rd 2006

Location: Bad Oeynhausen

Occupation: Software-Entwickler bei Diamant Software

17

Friday, June 15th 2007, 11:17pm

Hmm, also hab schon ein wenig Java-Vorerfahrung aus der Schule mitgebracht. Zwar von dort nicht ganz so viel über objektorientierte Programmierung, aber immerhin Java.
Hab jetzt schon seit Anfang dieser Vorlesung mit Eclipse gearbeitet, lass es aber keine Programmierarbeit abnehmen.
Ich find es halt praktischer von der Oberfläche her, dass ich mal ganz schnell eine neue Klasse erstellen kann, oder sehr schnell ein neues Package.
Was ich derzeit auch noch sehr schön finde (da ich noch gar nicht mehr Funktionen verwende) ist die Anzeige, wenn ich auf eine Methode einer anderen Klasse zugreife, dass ich nicht erst umher blättern muss, wie die nochmal hieß etc. pp., sondern dass Eclipse es mir direkt anzeigt.
Also ganz mit dem Texteditor und der Konsole, will ich mich in der Hinsicht noch nicht anfreunden (hätte da aber auch kein Problem mit), zumal beim normalen Texteditor oftmals keine Syntaxanzeige dabei ist.

This post has been edited 1 times, last edit by "GentleGiant" (Jun 15th 2007, 11:17pm)


Benjamin

Segelnder Alter Hase

  • "Benjamin" is male

Posts: 3,827

Date of registration: Oct 1st 2002

Location: Region Hannover

Occupation: Alumni

18

Friday, June 15th 2007, 11:33pm

Quoted

Original von GentleGiant
zumal beim normalen Texteditor oftmals keine Syntaxanzeige dabei ist.


vim-Befehl :syntax on :)
Es gibt nur eine bessere Sache als auf dem Wasser zu sein: Noch mehr auf dem Wasser sein.

DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

19

Saturday, June 16th 2007, 10:47am

Dann habe ich ja wieder ein Tool, das mir die Arbeit abnimmt/erleichtert, nix da. Entweder Hexeditor oder Eclipse, alles andere dazwischen ist Selbstbetrug ;)

GentleGiant

Hamster Inside(R)

  • "GentleGiant" is male

Posts: 283

Date of registration: Oct 3rd 2006

Location: Bad Oeynhausen

Occupation: Software-Entwickler bei Diamant Software

20

Saturday, June 16th 2007, 11:09am

Naja, ab und zu benutze ich dann auch mal ganz gerne BlueJ. Wie zum Beispiel jetzt in der Aufgabe. Kenn mich mit den Pfeilrichtungen nicht mehr ganz genau aus und bevor ich jetzt irgendwie groß rumexperimentiere, zieh ich lieber Pfeile.
Vorteil an BlueJ ist halt, dass man schön die Beziehungen seiner Klassen sieht.
Es gibt also definitiv etwas zwischen Editor und Eclipse.

This post has been edited 2 times, last edit by "GentleGiant" (Jun 16th 2007, 11:11am)