BlueJ - illegal start of expression. Wo liegt der Fehler?
Hallöchen, wir habe in der Schule vor kurzem mit dem Programmieren angefangen und dazu benutzen wir "BlueJ" und die Klassenbibliothek "Stifte und Mäuse".
Nun habe ich allerdings ein Problem und weiß nicht mehr weiter: In der Klasse Polygon bekomme ich in der Zeile mit "public void zeichne()" eine Fehlermeldung und zwar "illegal start of expression".
import sum.kern.*;
public class Polygon
{
// Referenzen
Stift meinStift;
Polygon meinPolygon;
Polygon meinPolygon1,meinPolygon2;
// Konstruktor
public Polygon(int pN,int pLaenge,int pHPosition,int pVPosition,int pWinkel)
{
// Objekte
meinStift = new Stift();
this.zeichne(pN, pLaenge, pHPosition, pVPosition, pWinkel);
// Methoden
public void zeichne()
meinStift.bewegeBis(pHPosition,pVPosition);
meinStift.dreheUm(pWinkel);
meinStift.runter();
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
meinStift.bewegeBis(pHPosition,pVPosition);
meinStift.dreheUm(pWinkel);
meinStift.runter();
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
}
}
Und die oben genannte Klasse Polygon soll auf die Klasse Steuerung "basieren". Liegt vielleicht hier der Fehler?
import sum.kern.*;
public class Steuerung
{
// Referenzen
Bildschirm meinBildschirm;
// Konstruktor
public Steuerung()
{
// Instanzvariable initialisieren
meinBildschirm = new Bildschirm(800, 800);
//methoden
meinStift.bewegeBis(pHPosition,pVPosition);
meinStift.dreheUm(pWinkel);
meinStift.runter();
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
meinStift.bewegeBis(pHPosition,pVPosition);
meinStift.dreheUm(pWinkel);
meinStift.runter();
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
meinStift.dreheUm(-120);
meinStift.bewegeUm(pLaenge);
}
}
Ich würde mich sehr freuen, wenn mir jemand helfen würde.
3 Antworten
Die Methode "zeichne" wird im Konstruktor definiert und dabei fehlt noch dazu die Klammersetzung um den Methodenkörper.
Definiere die Methode außerhalb und vergiss die Klammern nicht.
Was soll der Code bewirken?
// Methoden
public void zeichne()
Soll die Methode zeichne hier aufgerufen oder definiert werden? Entscheide dich für eins und halte dich an die entsprechende Syntax.
Falls du sie definieren / implementieren willst, musst du das außerhalb des Konstruktors tun.
da fehlt wohl das ";"