[java]Bird cannot be resolved to a type

Fermé
domxaline - Modifié par domxaline le 26/02/2013 à 18:48
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 26 févr. 2013 à 21:49
Bonjour,
mon prg compile pas,il donne une erreur
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Bird cannot be resolved to a type
Bird cannot be resolved to a type
Bird cannot be resolved to a type

at Mystack.main(Mystack.java:28)

pourtant il accepte la class Car
pourquoi il donne erreur pour la class Bird ?aidez moi svp

import java.util.*; 
public class Mystack  
{ 
  private LinkedList list=new LinkedList(); 
    public void push1(Object o) 
    { 
   list.addFirst(o); 
    } 
     
    public void push2(Object obj) 
    { 
      list.addLast(obj); 
    } 
     
    public Object bottom() 
    { 
     return list.getLast(); 
    } 
     
    public Object pop() 
    { 
     return list.removeFirst(); 
    } 
     
    public static void main(String args []) 
    { 
     Car myCar; 
     Bird myBird; 
     Mystack s=new Mystack(); 
     s.push1 (new Car()); 
     s.push2 (new Bird()); 
     myCar=(Car)s.pop(); 
     System.out.println("The first element in the list:"+myCar); 
     myBird=(Bird)s.bottom(); 
     System.out.println("The last element in the list:"+myBird); 
    } 
} 
class Car 
{ 
 String car1,car2,car3,car4; 
 Car() 
 { 
  car1="Benz"; 
  car2="Toyoto"; 
  car3="Qualis"; 
  car4="Santro"; 
 } 
 class Bird 
 { 
  String bird1,bird2,bird3; 
  Bird() 
  { 
   bird1="parrot"; 
   bird2="duck"; 
   bird3="raven"; 
  } 
 } 
} 




A voir également:

5 réponses

après l'exécution ce programme j'obtiens ce résultat
This first element in the list:Car@e48e1b
This last element in the list:Bird@12dacd1

mon question que signifie
Car@e48e1b
Bird@12dacd1

merci d'avance
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 févr. 2013 à 20:23
Le problème de compilation vient du fait que Car est déclarée à l'intérieur de Mystack (pas de problème) mais Bird est déclaré dans Car (problème), il faut désimbriquer tout cela, de préférence en mettant chaque classe dans un fichier à part, car là elles n'ont aucun lien entre elles.

Car@e48e1b, et Bird@12dacd1, ce sont les affichages par défaut des objets (voir la documentation de la méthode toString dans la classe Object). Il faut redéfinir la méthode toString dans les classes Car et Bird pour personnaliser ces affichages.
0
Il faut redéfinir la méthode toString dans les classes Car et Bird

m'expliquez svp
0
même en écrivant ainsi
System.out.println("This last element in the list:"+myBird.toString());

j'ai toujours
This last element in the list:Bird@1ad086a
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
26 févr. 2013 à 21:49
La méthode toString fait par défaut un affichage comme ça nomClasse@hashCode, mais si on veux autre chose, il faut la réécrire la méthode, on appelle ça une redéfinition.

Exemple :

class Car 
{ 
    String car1,car2,car3,car4;

    @Override
    public String toString()
    {
        return car1+","+car2+","+car3+","+car4;
    }
}
0