Java..corrigez moi cet excercice

salyiohh -  
KX Messages postés 19031 Statut Modérateur -
salut

j ai deux class (class Personne+principale), je veux afficher la valeur de premier tableau ("ab")
mais je sais pas ou j ai commé une erreur..merci
>>>>code>>>>

public class Personne {
private String nom;

public Personne(String snom) {
nom=snom;
}
public void aze(){
System.out.println(nom);
}

}

public class principale {
Personne p1[]=new Personne[3];

public static void main(String args[]) {
p1[0]="ab";
p1[1]="abc";
p1[2]="abcd";
aze.p1[0];
}

}

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    L'emploi de l'impératif est fortement déconseillé pour poser une question dans un forum

    Il n'y a aucune erreur pour la classe Personne. Par contre il y en a plusieurs dans la classe Principale (ne pas oublier la majuscule au nom de la classe)

    Personne p1[]=new Personne[3];
    Ici tu fais ton initialisation dans la classe, pour être correct il faudrait que tu déclares p1 static. Ou alors tu fais l'initialisation dans la méthode main.

    p1[0]="ab"
    p1[0] est un objet de la classe Personne et l'opérateur d'affectation avec un String lui est inconnu. Utilises plutôt le constructeur : p1[0]=new Personne("ab")

    aze.p1[0];
    p1[0] est un objet, et aze une méthode, la syntaxe correcte est donc p1[0].aze().
    Cependant ce n'est pas très Java de faire comme ça, il est plus approprié de redéfinir la méthode toString() plutôt que de définir ta méthode aze() :

    public String toString() { // remplace aze() dans la classe Personne
        return nom;
    }
    
    System.out.println(p1[0]); // remplace p1[0].aze() dans le main
    0