Java..corrigez moi cet excercice

Fermé
salyiohh - 5 déc. 2010 à 21:41
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 déc. 2010 à 14:28
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];
}


}


A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 déc. 2010 à 14:28
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