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.

hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

1

Sunday, May 27th 2007, 11:41am

Java Übung 6

Ich hänge im Moment an Aufgabe 1b und 1c, vor allem die Methode "private Fuel createFuel()" bereitet mir Kopfzerbrechen.
Wie soll ich überhaupt das Enum für die Treibstoffe anlegen?
Einfach stumpf eingeben:

Source code

1
2
3
Enum Treibstoffe{ 
Benzin, Diesel, Pflanzenoel, Unbekannt;
}

Oder soll ich in das Enum tatsächlich alle Werte einspeichern und innerhalb des Enums einen Kontruktor schreiben:

Source code

1
2
3
4
5
6
7
8
9
10
11
Enum Treibstoffe{ 
Benzin("Ottokraftstoff / Benzin", 1203, 33, -21, 4), Diesel(...), Pflanzenoel(...), Unbekannt(...);
private  String name;
private  int unNummer;
(...)
private Treibstoff(String name, int unNummer, (...)) {
this.name = name;
this.unNummer = unNummer;
(...)
 }
}

Denn ich habe derweil das Problem, dass ich nicht weiss, wie ich im Standard-Konstruktor der Klasse Fuel ein Fuel-Objekt schreiben soll, das mir die Eigenschaften aus dem Treibstoff-Enum wiedergibt. :-/

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

This post has been edited 1 times, last edit by "hamena314" (May 27th 2007, 11:42am)


AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

2

Sunday, May 27th 2007, 1:14pm

Ich finde deinen ersten Code ganz ok.
Das zweite verstehe ich nicht und finde ich auch viel zu kompliziert. Abgesehen davon, dass ich bezweifele, dass das überhaupt kompiliert.

Man darf ja nicht zu viel verraten, dann macht es keinen Spass mehr, aber eigentlich steht in der Aufgabe doch alles ganz gut drin. Man kann das einfach nacheinander abarbeiten.

vll musst du noch mal den ersten Satz nach "Aufgabe 1" lesen. Bei b) kann man die einzelnen Punkte prima hintereinander abarbeiten, die bauen ja aufeinander auf.

Bei Punkt b.4 ist der Hinweis auf c) wohl ganz wichtig und die Frage, wie Kraftstofftypen nach der Bearbeitung von c) "codiert" btw. hinterlegt sind.

hm jetzt kriege ich richtig Lust, das selbst mal zu programmieren :D

"Der Mensch braucht Schubladen." -- Any Key

DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

3

Sunday, May 27th 2007, 1:30pm

Tu's nicht, es würde Zeit kosten, die Du nicht hast. Du darfst das Forum nicht lesen ;)

Ich wußte gar nicht, dass es in Java Enums mit soviel 'drumherum' gibt, das sind ja fast schon Objekte? Also würde ich auch die erste Variante bevorzugen, die zweite macht nur ein schönes, einfaches Konzept völlig kaputt...dann lieber ein Objekt drumherum, das den Enum kapselt, als einen mit Variablen und Methoden überladenen Enumerator...

This post has been edited 1 times, last edit by "DrChaotica" (May 27th 2007, 1:32pm)


Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

4

Sunday, May 27th 2007, 1:36pm

Quoted

Original von DrChaotica
Ich wußte gar nicht, dass es in Java Enums mit soviel 'drumherum' gibt, das sind ja fast schon Objekte?

Nicht nur fast! (:
Enums gibt es seid Java 5.
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

This post has been edited 1 times, last edit by "Markus" (May 27th 2007, 1:36pm)


hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

5

Sunday, May 27th 2007, 3:55pm

Hmmmm... vielleicht habe ich tatsächlich zu kompliziert gedacht.
Ich habe mich halt am Sun-Beispiel zu Enums orientiert: http://java.sun.com/j2se/1.5.0/docs/guid…uage/enums.html
(unten das mit den Planeten).
Meiner Meinung nach kann man so halt wirklich sehr schön zusammengehörende Variablen mit Informationen füttern (sogar mit recht vielen) und dann auf eine schöne Weise direkt ansprechen.

Die Aufgabe steht ->hier<-, falls jemand nochmal nachlesen möchte.
Aufgabe 1b und 1c sind halt abhängig voneinander und je nachdem wie man das Enum anlegt, gestaltet sich das mit den Konstruktoren.
Vermutlich sollte ich mal die einfache Variante hinschreiben, eine Nacht drüber schlafen und morgen die Konstruktoren probieren, dann klappts auch mit der Verkettung. :D

HAVE PHUN!

P.S.: @AnyKey:
Es kompiliert wirklich und funktioniert auch, aber wie man weiter darauf die Konstruktoren aufsetzen sollte, treibt mich in den Wahnsinn! =)
Nicht der Wind bestimmt die Richtung, sondern das Segel! (Lao Xiang, China)

This post has been edited 2 times, last edit by "hamena314" (May 27th 2007, 3:58pm)


AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

6

Sunday, May 27th 2007, 4:01pm

Na dann halt es doch mit dem guten alten KISS :D

... und bleib normal. Wahnsinn kommt noch von alleine ;)

"Der Mensch braucht Schubladen." -- Any Key

hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

7

Monday, May 28th 2007, 6:47pm

... dem Wahnsinn so nah ... :D

Okay, ich hab' das Enum ganz simpel gestrickt und funktioniert soweit sehr gut.
Auch die Konstruktoren habe ich dazu gebracht, das zu tun was sie sollen.
Leider schaffe ich es nicht, die untereinander ALLE zu verketten, wie in der Aufgabe verlangt, ich kann den Standard-C'tor zwar mit this() so weiterleiten, dass er den zweiten aufruft und alle Parameter übergibt, aber wie ich Konstruktor Numero 3 und 4 miteinander verknüpfen kann/soll? überfordert mich gerade gar sehr...
Sollen wir die überhaupt wieder so verknüpfen wie in der letzten Aufgabe, also 1->2->3->4 oder "einfach" nur 1->2 und 3->4? ?(

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

Finn MacCool

Junior Schreiberling

Posts: 195

Date of registration: Oct 7th 2006

8

Monday, May 28th 2007, 7:39pm

keine ahnung wie wir es machen sollen, aber die erste variante ist zumindest möglich:
beim standardfall this("Benzin") verwenden, bei dem mit string this(createFuel..) usw.
So berichte uns weiter, sagte Diarmuid Donn, um der Liebe Gottes willen.
Fürwahr, sagte Finn, ich will nicht.

Neo

Erfahrener Schreiberling

  • "Neo" is male

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

9

Wednesday, May 30th 2007, 9:58pm

Quoted

Original von hamena314

Sollen wir die überhaupt wieder so verknüpfen wie in der letzten Aufgabe, also 1->2->3->4 oder "einfach" nur 1->2 und 3->4? ?(

HAVE PHUN!


1->2->3->4, denn 1->2 und 3->4 ist ja wieder doppelt gemoppelt.


Quoted

Orig. von Finn MacCool

beim standardfall this("Benzin") verwenden, bei dem mit string this(createFuel..) usw.



bei dem Konstruktor this(createFuel) bekomme ich folgende Fehlermeldung:

Source code

1
2
3
Fuel.java:24: cannot reference this before supertype constructor has been called
        this(createFuel(ftype));
             ^

Edit: Es ist hoffentlich jedem klar, wieso der Kompiler diese Fehlermeldung ausspuckt.
Ich wollte es nur nochmal posten, um darauf aufmerksam zu machen...

Edit: Was heißt "bei dem mit string"? Hast du etwa als Parameter von createFuel als Datentyp
String verwendet? Ist das sinnvoll? Wieso? ?(

This post has been edited 3 times, last edit by "Neo" (May 30th 2007, 10:05pm)


Neo

Erfahrener Schreiberling

  • "Neo" is male

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

10

Wednesday, May 30th 2007, 10:08pm

Quoted

Original von AnyKey
Na dann halt es doch mit dem guten alten KISS :D

... und bleib normal. Wahnsinn kommt noch von alleine ;)


Edit: Keep It Short and SImple ;)

This post has been edited 2 times, last edit by "Neo" (May 30th 2007, 10:20pm)


hamena314

Zerschmetterling

  • "hamena314" is male
  • "hamena314" started this thread

Posts: 2,032

Date of registration: Aug 31st 2003

Location: Hannover

Occupation: Informatikstudent (d'uh)

11

Thursday, May 31st 2007, 9:09am

Quoted

Original von Neo
1->2->3->4, denn 1->2 und 3->4 ist ja wieder doppelt gemoppelt.


Aber 1->2->3->4 bekomme ich nicht hin. :D
Denn ich weiss leider nicht, was ich wo reinstecken soll als Parameter, zumal ich die Aufgabe so verstehe, dass in Konstruktor 3 ein Fuel soll, in Nr. 4 ein Treibstoff. Also müsste ich in den letzten Konstruktor sowohl Treibstoff, als auch Fuel, als auch alle anderen Parameter stecken. Das wäre ein recht langer Aufruf und ich weiss nicht, ob das so gewollt ist, oder ich da was nich sehe... ?(

Quoted

Original von Neo
Edit: Was heißt "bei dem mit string"? Hast du etwa als Parameter von createFuel als Datentyp
String verwendet? Ist das sinnvoll? Wieso? ?(


Ich denke mal, da ist Aufgabe 3) gemeint, wo man für jedes Car einen kurzen Infotext generieren soll. Das geht am besten, wenn man in den Konstruktor einen String einfügt.

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

Rumpel

Trainee

  • "Rumpel" is male

Posts: 61

Date of registration: Dec 2nd 2005

Location: Hannover

Occupation: Softwareentwickler

12

Thursday, May 31st 2007, 1:21pm

Quoted

Aber 1->2->3->4 bekomme ich nicht hin.

Das is ja auch reichlich sinnlos (da fehlen einfach die nötigen Zusammenhänge). Ich habe jetzt folgende Verlinkung:
1->4->2<-3
wobei die Reihenfolge sich nach der Aufgabenstellung richtet.

Ich habe das so verstanden, dass als Parameter für den 4. Konstruktor ein enum Datenobjekt übergeben wird und nicht ein String (wofür sonst sollte der enum sonst da sein?). Die Eigenschaften habe ich dann im enum hinterlegt, was den Aufruf des 2. Konstruktors aus dem 4. heraus besonders einfach macht...

Muss ja aber mal betonen, dass diese Aufgabenstellungen immer viel Spielraum für eigene Interpretationen lassen...
Wer ander'n eine Grube gräbt, der hat ein Grubengrabgerät!

Finn MacCool

Junior Schreiberling

Posts: 195

Date of registration: Oct 7th 2006

13

Thursday, May 31st 2007, 4:20pm

Quoted

Original von NeoEdit: Was heißt "bei dem mit string"? Hast du etwa als Parameter von createFuel als Datentyp
String verwendet? Ist das sinnvoll? Wieso? ?(


äh, der gedanke war noch nicht final ;)
So berichte uns weiter, sagte Diarmuid Donn, um der Liebe Gottes willen.
Fürwahr, sagte Finn, ich will nicht.

Neo

Erfahrener Schreiberling

  • "Neo" is male

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

14

Thursday, May 31st 2007, 10:56pm

Quoted

Original von hamena314

Quoted

Original von Neo
Edit: Was heißt "bei dem mit string"? Hast du etwa als Parameter von createFuel als Datentyp
String verwendet? Ist das sinnvoll? Wieso? ?(


Ich denke mal, da ist Aufgabe 3) gemeint, wo man für jedes Car einen kurzen Infotext generieren soll. Das geht am besten, wenn man in den Konstruktor einen String einfügt.

HAVE PHUN!


Ich würde als Beschreibung einfach einen Enum verwenden, da man damit die Anzahl
verschiedener, möglicher Beschreibungen für ein Car-Objekt verringert, bzw. eingrenzt.
Das erhöht die Wahrscheinlichkeit, mit der Methode "looksLike(Car c)" einen Treffer zu gelangen,
andernfalls ist ein Treffer fast ausgeschlossen, wenn man für jedes Auto einen beliebigen String
als Text hinzufügen kann.
Ein Enum ist an sich auch nur eine Klasse, in dem die aufgezählten Typen in String gespeichert
werden. Ich habe irgendwo mal gelesen, dass der Java Kompiler ein Enum in eine Klasse umwandelt, und die Typen als Konstante String Member (also static final) abspeichert. Habe aber leider vergessen,
wo ich das her habe..

This post has been edited 2 times, last edit by "Neo" (May 31st 2007, 10:59pm)


Informatik Minister

Senior Schreiberling

  • "Informatik Minister" is male

Posts: 1,234

Date of registration: Dec 11th 2001

15

Thursday, May 31st 2007, 11:53pm

Quoted

Original von Neo
Das erhöht die Wahrscheinlichkeit, mit der Methode "looksLike(Car c)" einen Treffer zu gelangen, andernfalls ist ein Treffer fast ausgeschlossen, wenn man für jedes Auto einen beliebigen String als Text hinzufügen kann.

Unabhängig davon, was man jetzt benutzen sollte, glaube ich nicht, dass auch die Beschreibung der Autos verglichen werden soll. Ich interpretiere "Eigenschaften" eher als "technischen Eigenschaften". :)
"Fliegenpilze! Löwen!! Das Leben ist gefährlich." -- www.katzundgoldt.de