Methode in Klasse funktioniert nicht

tekknika

Mitglied
Moin,
Ich komme gerade nicht weiter in zeile 46-49 tritt ein fehler (die zeilen habe ich mit <------- a und <-------b markiert) auf ich habe keine ahnung warum ich die Methode dort nicht anlegen kann.
Diese Fehler werden mir angezeigt, ich kann mir den Grund oder Sinn der Fehler leider nicht erklären:
"Multiple markers at this line
- Syntax error, insert ";" to complete
LocalVariableDeclarationStatement
- Syntax error, insert "[ ]" to complete Dimension
- Illegal modifier for parameter addTor; only final is permitted
- Syntax error on token "addTor", AnnotationName expected after
this token
- void[] is an invalid type"


Code:
import java.util.Random;

public class person {
    public static class Person{
        public String name;
        public int alter;
     
        //Funktionen (get und set):
        public String getName() {
            return name;
        }
     
        public void setName(String n) {
            name = n;
        }
     
        public int getAlter() {
            return alter;
        }
        public void setAlter(int a) {
            alter = a;
        }
 
        // Konstruktoren <------------
        public Person(String n, int a) {
            name = n;
            alter = a;
        }
    }
    public static class Spieler extends Person{
     
        public int  staerke; // 1 = schlecht 10 = super
        public int  torschuss; // -"-
        public int  motivation;// -"-
        public int  tore;
     
        // Konstruktor
        public Spieler(String n, int a, int s, int t, int m) {
            super(n, a);
            staerke     = s;
            torschuss    = t;
            motivation    = m;
            tore        = 0;
         
            //  Der Spieler hat ein Tor geschossen
            public void addTor() {//<-----------a
                tore++;         
            }                    //<-------------b
     
         
        }
     
     
    }
 
    public static class Trainer extends Person{
        private int erfahrung; // 1 = schlecht 10 = super
     
        // Funktionen (get und set):
        public int getErfahrung() {
            return erfahrung;
        }
     
        public void setErfahrung(int e) {
            erfahrung = e;
        }
     
        // Konstruktor<---------------
     
        public Trainer(String n, int a, int e) {
            super(n, a);
            erfahrung        = e;
        }
 
    }



    public static void main(String[] args) {
        Trainer trainer = new Trainer ( "Jürgen Klinsmann" , 42 , 7);
        System.out.println( "hi" );
    }

}
 

tekknika

Mitglied
Oh darf ich überhaupt alle Klassen zusammen in einer klassen packen?
Sind das dann unter klassen oder wie?
Oder ist es besser immer eine neue Klasse zu erstellen?
 

MoxxiManagarm

Top Contributor
Wenn möglich solltest du auf statische Klassen verzichten. Wozu?
Bei addTor deklarierst du eine Methode im Konstruktor. Verschiebe eine } und dann sollte es eventuell gehen.
 

Javinner

Top Contributor
@tekknika
Damit man auf Dauer Struktur in eigenen Programmen bekommt, sollte man diesem Vorschlag folgen.
http://openbook.rheinwerk-verlag.de...05_001.htm#mj005cd8e604aefc3ae72b92880fcee5c6

Weiterhin: warum ist Spieler als static deklariert?

public int staerke; // 1 = schlecht 10 = super
Das schreit danach, die Werte als unveränderliche Klassenvariablen zu hinterlegen, um diese dann sauber in
die Operationen einbinden zu können.
Als Beispiel:
Java:
public class Spieler{
final static int STAERKE_MINIUM = 1;
final static int STAERKE_MAXIUM = 10;

public boolean istImKraftFeld(int x) //Besserer Operationsname ist mir auf die Schnelle nicht eingefallen
{
    return ((x > Spieler.STAERKE_MINIUM) && (x < Spieler.STAERKE_MAXIUM));
}
 

MiMij

Bekanntes Mitglied
Grundsätzlich sollten Klassennamen Groß geschrieben werden. Die Klasse heißt genauso wie die Datei. Und ja du solltest für jede Klasse eine eigene Datei anlegen und nicht alles in einer schreiben.
Der Rest wurde ja schon gesagt.
 

tekknika

Mitglied
Also die Klassen habe ich als statisch deklariert, damit ich in der main methode darauf zu greifen kann. Keine Ahnung vorher hat Java mir immer einen Fehler( ungefähr = "No enclosing instance of type...") angezeigt in der Zeile wo "Trainer trainer = new Trainer" steht,
Jetzt habe ich aber alles in einzelne Klassen gepackt, also ohne unter Klassen, dadurch funktioniert es auch ohne static. Außerdem ist es so viel übersichtlicher.

@Javinner werde ich mir mal anschauen.

Bei addTor deklarierst du eine Methode im Konstruktor. Verschiebe eine } und dann sollte es eventuell gehen

Ja stimmt blöder Fehler :D

Danke für die zahlreichen Antworten
 

Hansebas

Mitglied
Moin,
ich fange gerade an mich mit Java zu beschäftigen und habe ein kleines Syntaxproblem. Ich habe mir hierzu zu schon andere Codes angeschaut, aber komme zu keiner Lösung. Ich denke ich könnte beides in eigene Klassen schreiben, aber das ist nicht das Ziele meiner Übung. Da es sich um einen ähnlichen Fehler, wie in diesem Thread handelt, habe ich dies hier mit reingepostet. Wenn dies nicht in Ordnung ist, bitte ich vorab um Entschuldigung.
Java:
import java.util.Scanner;
 /**
  * Kurzbeschreibung hinterlegen
  *
  * @author      Sebas
  * @version     1.8.0, 09/2011
  */
 public class Musteraufbau {
//Begin des Klassenrumpfes --> gekennzeichnet durch {-Klammer
 /* Klassenkopf
 Enthält Schlüsselwort für die Sichtbarkeit
 public --> für alle Sichtbar
 static --> immer verfügbar und nicht änderbar
 privat -->
 [Klasse für Sichtbarkeit Klasse  Name der Klasse]
*/
     /*
      * Soll die Klasse von der Eingabekonsole aus aufgerufen werden können,
      * dann muss die hier aufgeführte main-Methode enthalten sein.
      * Diese Methode ist der definierte Einstiegspunkt für die Ausführung.
      */
     public static void main(String[] args) { // Beginn des Methodenrumpfes
        String comp;
      String run;
    
  comp="javac NameIhrerKlasse.java";
     run="java NamederKlasse";
     System.out.println("Der allgemeine Befehl zum kompilieren lautet "+ comp +".");
     System.out.println("Nach dem erfolgreichen kompilieren durch" + comp +",");
     System.out.println("kann das Programm mit " + run + " ausgeführt werden.");
 
// Ende des Klassenrumpfes
     --Fehlerzeile-->public int KleinerRechner([]) {
     int a;
     int b;
     String c;
     int ergebnis;
     Scanner Zahl = new Scanner(System.in);
   
     System.out.println("Geben Sie Ihre erste Zahl ein:");
     a = Zahl.nextInt();
 
     System.out.print("Geben Sie Ihre zweite Zahl ein:");
     b = Zahl.nextInt();
   
     Scanner Operand = new Scanner(System.in);
     System.out.print("Geben Sie Ihren Operanten ein:");
     c = Operand.next();
 
     ergebnis = a + b;
  System.out.println("Das Ergebnis von " + a +" und " + b + " lautet " + ergebnis +".");
   }
   
    }
 }

Der Syntaxfehler wird mir in Zeile 35 angezeigt (markiert durch: --Fehlerzeile-->). Ich erhalte folgende Fehlermeldungen
Syntax error on token ")",; expected
Syntax error on token "(", delete this token
Illegal modifier for Parameter KleinerRechner; only final is permitted
Gerade mit dem letzten Syntaxfehler habe ich ein Problem. Ich möchten diesen eigentlich nicht fix setzen.

Wie kann ich die Syntaxfehler beheben?

Gruß
Hansebas
 

Robat

Top Contributor
Mach nächstes mal einen eigenen Thread auf :) Vielleicht kann ein Mod das ja noch verschieben.
Zu deinem Problem:
(1) Du deklarierst momentan eine Methode in einer Methode. Das funktioniert nicht. Wenn man deinen Code mal auf das nötigste runterkürzt, sieht man das ganz gut.
(2) Deine Methodensignatur int kleinerRechner([]) funktioniert so nicht. Ein Parameter besteht immer aus <datentyp> <variablenname> . Du schreibst momentan nur [] als Parameter.
Java:
public class Musteraufbau {
    public static void main(String[] args) {
        public int kleinerRechner([]) {

        }
    }
}
 

Hansebas

Mitglied
Moin,
beim nächsten mal werde ich das machen.

Das Beispiel habe ich aus folgender Zusammensetzung entnommen, beziehungsweise wollte dies einmal für mich nachvollziehen.

Java:
public class Searchmethods {
public static void main(String[] args) {
public static int binarySearch(int[] werte, int gesuchterWert, int anfang, int ende) {
}
}
}

Da dies nicht so wirklich geklappt hat, habe ich die Variablen darunter deklariert.
Wenn ich die Variablen wie folgt deklariere

Java:
public static int KleinerRechner(int[] a; int b; int ergebnis; String c) {
}
Bekome ich noch mehr Syntaxfehlermeldungen
Auch erhalte ich dann in
Java:
a = Zahl.nextInt();
die Meldung "cannot convert int to int[] ".

Daher mache ich folgendes
Code:
public static int KleinerRechner(int a; int b; int ergebnis; String c)

Meine ursprünglichen Fehlermeldungen bekomme ich aber nicht raus. :(

@mrBrown & mihe7: static --> deklarien eine Klassenvariable
Erklärt es dies besser?

Gruß
Hansebas
 

Javinner

Top Contributor
Bekome ich noch mehr Syntaxfehlermeldungen
Anstelle von..
public static int KleinerRechner(int a; int b; int ergebnis; String c)
doch lieber..
public static int kleinerRechner(int a, int b, int ergebnis, String c){}

The Java® Language Specification

cannot convert int to int[]
Wenn du eine Banane in Empfang nehmen willst, dann kannst du keine Birnen liefern.
Java:
public int getValue()
{
    return this.value; // Dabei sollte die Variable value vom Typ int sein
}
Java:
public int[] getArrayValue()
{
    int[] array = ...
    //Code
    return array;
}
 
Zuletzt bearbeitet:

temi

Top Contributor
Das Beispiel habe ich aus folgender Zusammensetzung entnommen, beziehungsweise wollte dies einmal für mich nachvollziehen.

Da dies nicht so wirklich geklappt hat

Hast du das mal ordentlich eingerückt?
Java:
public class Searchmethods {
    public static void main(String[] args) {
        public static int binarySearch(int[] werte, int gesuchterWert, int anfang, int ende) {
        }
    }
}

Du versuchst wieder die Methode "binarySearch" innerhalb einer anderen Methode zu deklarieren und das geht nicht.
Du kannst Methoden nur innerhalb von Klassen deklarieren:
Java:
public class Searchmethods {
    public static void main(String[] args) {      
    }

    public static int binarySearch(int[] werte, int gesuchterWert, int anfang, int ende) {
    }
}
 

Hansebas

Mitglied
Moin,

ich habe den code mal neu aufgebaut und ja, bin mit den {} durcheinandergekommen. Jetzt wird zwar die Methode kleiner Rechner nicht ausgeführt, aber das ist ein anderes Problem.

Danke für die Hilfe und Geduld :=)
Gruß
Hansebas
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
bensdt Klasse erweitern um eine Methode "void decrement()" Java Basics - Anfänger-Themen 5
S Methode von vererbter Klasse, statt die der "Mutterklasse" aufrufen Java Basics - Anfänger-Themen 28
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
S Methode in der Klasse erstellen Java Basics - Anfänger-Themen 2
E Methode soll andere Methode der selben Klasse aufrufen Java Basics - Anfänger-Themen 28
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
R Methode in Singleton Klasse Java Basics - Anfänger-Themen 1
J Erste Schritte drawLine Methode der Graphics Klasse Java Basics - Anfänger-Themen 2
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
G Klassen Mit fremder Klasse auf public Methode zugreifen Java Basics - Anfänger-Themen 23
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
C Gui- Klasse erkennt Übergabeparameter aus Methode nicht Java Basics - Anfänger-Themen 4
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
B Wie kann ich eine Methode einer selbst erstellten Klasse statisch importieren? Java Basics - Anfänger-Themen 5
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
shiroX Klassen Klasse/Methode private final jUnit-Fehler Java Basics - Anfänger-Themen 5
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
P Instanz mit .add Methode von einer Klasse zur anderen? Java Basics - Anfänger-Themen 6
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
S Methoden Methode einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 5
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
G Methode einer Abstrakten Klasse aufrufen Java Basics - Anfänger-Themen 1
A Methode aus einer anderen Klasse ausführen Java Basics - Anfänger-Themen 7
H Klasse bzw methode der Klasse in einer anderen Klasse benutzen Java Basics - Anfänger-Themen 4
P OOP Eingabevariablen der Klasse Raum in der Methode addEvent ans Ende einer ArrayList einfügen Java Basics - Anfänger-Themen 3
S Methode außerhalb der Klasse definieren Java Basics - Anfänger-Themen 5
E Methode aus Klasse eins in Klasse zwei verwenden? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
B Klasse: Methode Clone Java Basics - Anfänger-Themen 5
O Klasse übergeben und Methode aufrufen Java Basics - Anfänger-Themen 6
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
A Vererbung Abstrakte Klasse mit Methode die Objekte der Subklassen benutzt? Java Basics - Anfänger-Themen 7
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
P Methode außerhalb der Klasse aufrufen Java Basics - Anfänger-Themen 10
S Methoden Methode einer anderen Klasse ausführen? Java Basics - Anfänger-Themen 6
M Methode aus einer Klasse aufrufen Java Basics - Anfänger-Themen 6
B Erste Schritte In Klasse B die Methode aus Klasse A in Klasse A ausführen Java Basics - Anfänger-Themen 10
R Compiler-Fehler Klasse A nutzt Objekt von Klasse B, um Methode von Klasse B auszuführen Java Basics - Anfänger-Themen 11
H Programmiertechnik: Methode einer Klasse beim Anlegen überschreibt Java Basics - Anfänger-Themen 3
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
M Methode mit beliebigen Parametern in abstrakter Klasse definieren Java Basics - Anfänger-Themen 8
A Arraylist einer Methode, gefüllt einer anderen Klasse übergeben Java Basics - Anfänger-Themen 17
A Mit Methode auf Methode derselben Klasse zugreifen Java Basics - Anfänger-Themen 3
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
A Methode aus anderer Klasse Java Basics - Anfänger-Themen 5
B Methode in andere Klasse verschieben Java Basics - Anfänger-Themen 9
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
M Methode einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 7
S Klassen Methode von Klasse lesen Java Basics - Anfänger-Themen 10
D Methoden Methode über andere Klasse aufrufen Java Basics - Anfänger-Themen 7
J Methode vom Typ einer Klasse!? Java Basics - Anfänger-Themen 8
L Objekt.methode(new Klasse().methode()); Java Basics - Anfänger-Themen 7
N Klassen Klasse - Objekt - Methode Java Basics - Anfänger-Themen 6
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
T Klasse in Main Methode Java Basics - Anfänger-Themen 3
H Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 7
R Auf get-Methode von ArrayList zugreifen von Methode einer Klasse Java Basics - Anfänger-Themen 2
J Klasse Student - Methode immatrikullieren, exmatrikullieren, altersdurchschnitt Java Basics - Anfänger-Themen 15
Corben Methoden Methode einer Abstrakten Klasse Java Basics - Anfänger-Themen 7
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
C Objekt X über Methode aus anderer Klasse verändert Java Basics - Anfänger-Themen 3
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben