BlueJ Pacman

r1d1

Mitglied
Morgen,
wir haben in der Schule mit BlueJ angefangen, das Thema interessiert mich sehr, doch ich kenne mich noch nicht so aus (BlueJ basiert auf Java).
Ich habe 2 Klassen erstellt, einen PACMAN(), und eine KREISFORM().
Die KREISFORM() habe ich aus dem Internet runtergeladen und importiert, also an der kann es nicht liegen.
Doch im Quellcode von PACMAN() zeigt es mir folgende Fehlermeldung an:
(Habe übrigens nach dieser Anleitung gearbeitet: http://www.kruemelundmonster.de/unterrichtskonzept/Kap03.pdf


public class PACMAN
{
//Attribute
int positionX;
int positionY;
boolean verwundbar;
char blickrichtung;

//Referenzattribute
new KEISFORM() <--------- An dieser Stelle kommt die Fehlermeldung: "illegal start of type"
symbol = new KREISFORM();
symbol.RadiusSetzen(50);
symbol.StartWinkelSetzen(120);
symbol.BogenWinkelSetzen(300);
symbol.BogenArtSetzen(2);
symbol.FarbeSetzen("gelb");

//Konstruktor für Objekte der Klasse PACMAN
PACMAN()
{
//Die Position kann mangels Labyrinth noch nicht festgelegt werden
verwundbar = true;
blickrichtung = 'N';
positionX = 0;
positionY = 0;
}
//Methoden
//...
}
 
ein new zuviel am anfang

sichtbarkeit objekttyp variablenname = new objekttyp()
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

mit "new KEISFORM() " erzeugst du zwar ein neues Objekt der Klasse KEISFORM, aber du weißt es keiner Variablen zu. Lösche einfach diese Zeile, denn in der Nächsten ist es richtig.

MfG
hansmueller
 
Schwer zu erkennen, da auch dieser User den ROTEN Text übersehen oder großzügig ignoriert hat...

Java:
public class PACMAN
{
//Attribute
int positionX;
int positionY;
boolean verwundbar;
char blickrichtung;

//Referenzattribute
new KEISFORM() <--------- An dieser Stelle kommt die Fehlermeldung: "illegal start of type"
symbol = new KREISFORM();
symbol.RadiusSetzen(50);
symbol.StartWinkelSetzen(120);
symbol.BogenWinkelSetzen(300);
symbol.BogenArtSetzen(2);
symbol.FarbeSetzen("gelb");

//Konstruktor für Objekte der Klasse PACMAN
PACMAN()
{
//Die Position kann mangels Labyrinth noch nicht festgelegt werden
verwundbar = true;
blickrichtung = 'N';
positionX = 0;
positionY = 0;
}
//Methoden
//...
}


Sooo

Java:
new KEISFORM() <--------- An dieser Stelle kommt die Fehlermeldung: "illegal start of type"
symbol = new KREISFORM();
symbol.RadiusSetzen(50);
symbol.StartWinkelSetzen(120);
symbol.BogenWinkelSetzen(300);
symbol.BogenArtSetzen(2);
symbol.FarbeSetzen("gelb");

Sowas darf nur in einer Methode stehen oder in einem static Block...

Desweiteren hat symbol keine Typdeklaration.

Davon abgesehen solltest du nochmal von vorne angefangen, denn hättest du dich an den Text in deinem Link gehalten, wäre das nicht passiert.
 
Nochmal danke für die schnelle Antworten, hab's jetzt kapiert:

So ist es richtig nicht?

public class PACMAN
{
//Attribute
int positionX;
int positionY;
boolean verwundbar;
char blickrichtung;


//Referenzattribute
KREISFORM symbol;
{
symbol = new KREISFORM();
}

//Konstruktor für Objekte der Klasse PACMAN
PACMAN()
{
//Die Position kann mangels Labyrinth noch nicht festgelegt werden
verwundbar = true;
blickrichtung = 'N';
positionX = 0;
positionY = 0;
symbol.RadiusSetzen(50);
symbol.StartWinkelSetzen(120);
symbol.BogenWinkelSetzen(300);
symbol.BogenArtSetzen(2);
symbol.FarbeSetzen("gelb");

}
//Methoden
//...
}
 
Java-Tags benutzen

Lässt sich dein Code kompilieren? Schaut auf jedenfall schonmal besser aus als der erste.
 
Also das ist schon ignorant...
Dicker roter Text, ein Hinweis darauf und es wird sich immer noch nicht daran gehalten...
 
Java:
{
symbol = new KREISFORM();
}
warum sind da klammern?

zuerst einmal deine frage: die klammern sind da, weil damit ein methodenaufruf erfolgt, genauer gesagt, wird der konstruktor KREISFORM() aufgerufen.

zur eingangfrage beachte bitte die schreibweise:

Code:
new KEISFORM() <--------- An dieser Stelle kommt die Fehlermeldung: "illegal start of type"
symbol = new KREISFORM();

eine KEISFORM ist eben keine KREISFORM..
 

hm ich finde au fder gelinkten seite nichts das mir:
Java:
KREISFORM symbol;
{
symbol = new KREISFORM();
}
erklärt und ich bezweifel auch ganz stark das der te weiß was er da gemacht hat.

entweder einfach:
Java:
KREISFORM symbol = new KREISFORM();

oder was er zuerst wollte, wenn ich das gelinkte verstanden hab:
Java:
public static KREISFORM() symbol = new KREISFORM();
static {
symbol.RadiusSetzen(50);
symbol.StartWinkelSetzen(120);
symbol.BogenWinkelSetzen(300);
symbol.BogenArtSetzen(2);
symbol.FarbeSetzen("gelb");
}

im tutorial stehts nochmal ganz anders, da wird die variable erst im konstruktor initialisiert und nicht irgnedwie oben mit. du sollest deine tutorials auch ganz lesen und abarbeiten, dann passiert sowas nicht
 
Zuletzt bearbeitet von einem Moderator:
ürbigens selbst wenn es so gegangen wäre dann hättest du immer noch einen Tippfehler gehabt weswegen es nie im Leben funktioniert hätte du sagt :
new KEISFORM() nennst aber den Rest KREISFORM..... da fehlt ein R nicht wahr ?! =)
 

Zurück
Oben