2 votes

Java: Erreur dans un programme, mais aucun dans un autre. "Démarrage illégal ou type"

Le titre est long... je sais... mais bon...

Pour une raison quelconque, je reçois l'erreur "Début de type illégal" dans un programme, mais lorsque je le compare à un programme que j'ai fait avant. L'erreur n'apparaît pas là. Et pour une raison étrange, dans le code que je suis en train de faire maintenant. J'obtiens également une erreur "attendue" aussi.

Le code que je suis en train de faire maintenant est celui-ci

public class Hero {
    public static Dice d = new Dice();
    public String n;
    public int s, p ,i;
    public int currentHP;
    public int maxHP = 100;
    public int maxMP = 100;
    public int maxSP = 100;

    public Hero(String n, int s, int p, int i,){ //début de type illégal
        this.n = n;
        this.s = s;
        this.p = p;
        this.i = i;
        this.currentHP = maxHP;
    }
    public int Attack(){
        int damage;
        damage = (p*s) + d.Stats();
    }
// attendu

}

Comparé à un programme que j'ai fait avant

public class Character implements Arma {
public static Dice d = new Dice();
public String n;
public int s, p, i;
public int currentHP;
public int MP;
public int maxHP = d.Health();
public int maxMP = d.Health();

public Character (String n, int s, int p, int i){
    this.n = n;
    this.s = s;
    this.p = p;
    this.i = i;
    this.currentHP = maxHP;
    this.MP = maxMP;
}
        public int attack()
{
    int damage;
    damage = ((s * p) + i) + d.Dice();
    return damage;
}

Je ne reçois aucune erreur ici dans Character... C'est une énigme pour moi... est-ce juste parce que je n'ai pas encore terminé tout le code pour Hero? mais cela n'a aucun sens car le code Character était parfait quand je l'ai fait, donc pourquoi le code Hero agit-il bizarrement?

P.S. J'ai fait le code du personnage quand j'étudiais. Cependant, il est entièrement fait de ma propre imagination. Le code du héros est essentiellement juste une copie reformatée.

P.P.S. Le code Arma est juste une interface qui devait "améliorer" la classe Character pour qu'elle puisse rivaliser avec un autre code que nous devions faire en classe. Cela ne fait littéralement rien d'autre que donner des armes au code Character.

4voto

Scary Wombat Points 12031

Se débarrasser de la dernière virgule

public Hero(String n, int s, int p, int i){ //illegal start of type

donc ça devient

public Hero(String n, int s, int p, int i) {

4voto

Pradeep Simha Points 4232

Vous avez une faute de frappe ici public Hero(String n, int s, int p, int i,)

Vous avez , après int i enlevez cela et changez pour ceci :

public Hero(String n, int s, int p, int i)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X