array im konstruktor

  • Themenstarter Themenstarter hannes88
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
H

hannes88

Gast
ch verstehe ein Sache nicht:

"das Attribut data (soll) mit dem Array dat initialisiert werden" im Konstruktor Robot(int st, int av, int[] dat)
Was soll das bringen und wie rufe ich das dann auf im task ?


Code:
Robot(int st, int av, int[] dat) {
     super(st, av, 999999, East);
     data=dat;
}
[/quote]
 
das soll bringen, dass das Attribut data für den Rest des Objekt-Lebens das Array dat enthält,
du kannst darauf entweder schlecht mit object.data oder besser mit object.getData() zugreifen
 
aber was muss ich im konstruktor eingeben? egal was ich eingebe es kommt ne fehlermeldung.

Robot(3,4,?????){
...
...
}
 
wo eingeben? der Code steht doch so schon da, was dann noch eingeben?
gibts Fehlermeldungen?

oder meinst du die Erzeugung eines Robot-Objektes? dann verstehe ich die Klammern nicht:

int[] ar = new int[2];
Robot r = new Robot(3,4,ar);
 
in der aufgabe heisst es:

"einen Konstruktor RLE(int st, int av, int[] dat)
......................allerdings soll anschließend das Attribut data mit dem Array dat initialisiert werden."

irgendwo oben hab ich schon data erzeugt.

mein konstruktor sieht so aus:

Code:
RLE(int st, int av, int[] dat) {
    super(st, av, 999999, East);
    data=dat;
    }

wenn ich jetzt im task folg.:
RLE karel=new RLE (1,1,dat);
ausführe kommt die Fehlermeldung
"dat cannot be resolved"
wenn ich data hinschreibe kommt trotzdem die fehlermeldung.

wenn ich dat weg lasse, kommt die fehlermeldung:
"The constructor RLE(int, int) is undefined"

gruß
hannes
 
also class RLE sieht so aus:


Code:
class RLE extends Robot {


int [] data ={0,3, 3, 3, 3, 3, 6, 6, 6, 6}; 


RLE(int st, int av, int[] dat) {
   super(st, av, 999999, East);
   data=dat;
   }

//hier habe ich noch paar methoden

}

jetzt will ich den robot im task aufrufen und die methoden laufen lassen, aber der robot wird gar nicht erzeugt, es kommen die schon oben erwähnten meldungen.
 
wie schon geschrieben:
SlaterB hat gesagt.:
int[] ar = new int[2];
Robot r = new Robot(3,4,ar);

bzw. nun auf einem RLE??

int[] ar = new int[2];
RLE r = new RLE(3,4,ar);

----------


> RLE(int st, int av, int[] dat) {
> super(st, av, 999999, East);

wenn der Konstruktor von Robot nur 3 Parameter annimmt, wieso übergibst du hier 4 (an super = Robot)?
 
das ist ja der konstruktor der super klasse, die werte 999999 und east sind festgelegt.

zum ersten, ich probiere es mal aus. danke.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben