2010-06-19 4 views
2

J'ai un objet dont les fonctions je voudrais appeler à partir avec dans une autre classe, par exempleUtilisation des variables d'objets à l'intérieur d'autres classes

class smo { 

    int spoon = 10; 

    smo() { 
    } 

    int get_spoon() { 
     return spoon; 
    } 
} 

class boat { 

    boat() { 
    } 

    print_smo(Object test) { 

     test.get_spoon(); 

    } 
} 

il me dit que la fonction get.spoon() n'existe pas. L'erreur a du sens puisque l'objet n'a pas été créé, la fonction ne peut pas être appelée, mais elle existera quand son exécution et je lui ai passé un objet approprié du type smo.

+0

Code Reformaté; s'il vous plaît revenir si incorrect. – trashgod

Répondre

4

Puisque Java a une vérification de syntaxe statique, il doit connaître le bon type de vos objets avant d'exécuter le programme. Et puisqu'il n'a aucune sorte de type inference c'est le devoir d'un programmeur de les déclarer dans le code source.

Cela signifie que pour appeler réellement la méthode de smoget_spoon() sur un objet smo vous devez déclarer qu'il sera de ce type et non pas seulement un Object (ce qui est le type le moins spécifique possible Java):

void print_smo(smo test) 
{ 
    test.get_spoon(); 
} 

cela fonctionnera .. et vous permettra d'appeler oneBoot.print_smo(new smo()).

Deux notes secondaires:

  • noms de classe doivent être camelcased ainsi: ClassName
  • méthodes et variables doivent être notationCamel aussi, mais sans la première lettre, par exemple: myLongVariable
+1

Je viens de trouver comme toujours, immédiatement après avoir demandé, la réponse. http://java.sun.com/docs/books/tutorial/java/javaOO/arguments.html Merci cependant. – Prospero

+1

@Doodle: vous devez accepter cette réponse en cliquant sur la coche. Vous devriez également revenir à vos anciennes questions et marquer les réponses appropriées comme acceptées. –

+0

@Adam Robinson:: P our un temps d'attente :) – Prospero

Questions connexes