2017-10-10 2 views
-4

J'essaie d'appeler une méthode void à partir de ma méthode principale statique. Voici ce que j'ai:Appel d'une méthode void à partir d'une méthode principale statique

public static void main(String[] args){ 
    Scene scene = new Scene(); 
    Animate animate = new animate(); 
    animate(); //I've tried it by itself, but no luck 
} 
public void animate(){ 
    sun.slowMoveHorizontal(5000); 
    moon.slowHorizontal(400); 
} 

Si quelqu'un pouvait l'aider serait très apprécié. Le texte dit, "Ajoutez un appel à animer dans votre méthode principale juste en dessous de la ligne qui crée l'objet Scène." Si cela aide.

+0

Supprimer 'Animate animate = new animate();'. – melpomene

+0

Je reçois toujours "ne peut pas référencer un élément non statique d'un contexte statique" – Dearerburrito

+0

Vous essayez d'appeler la méthode * depuis * votre méthode principale. Pas "à". – EJP

Répondre

0

Change:

public void animate(){ 

Pour:

public static void animate(){ 

Vous essayez d'appeler une méthode non statique d'un statique.


Si animate() est un membre de l'instance, vous instancier l'objet et appelez animate() de cet objet:

public static void main(String[] args){ 
    Animation a = new Animation(); 
    a.animate(); 
} 
+0

Maintenant mes variables "soleil" et "lune" sont hors contexte car elles ne sont pas statiques – Dearerburrito

+0

Si animate() fait partie d'une classe, vous instanciez l'objet et appelez animate() depuis cet objet. Si animate() est juste une méthode qui existe avec votre main(), définissez-la comme statique. – user3437460

+0

Lorsque je l'instancie, je reçois toujours "Impossible de trouver un symbole - classe Animate" – Dearerburrito

2

En supposant Animate est une classe appropriée, vous devez appeler la méthode d'instance sur une instance réelle .

Par exemple.

Animate a = new Animate(); 
a.animate(); 

Sinon, consultez la classe Scène. Es-tu censé animer ça?

+0

Je m'excuse, mais quand je fais cela "Animate" et "Animate()" ne peuvent pas être trouvés comme des symboles. – Dearerburrito

+1

@Dearerburrito Cela aurait également été un problème avec le code que vous avez posté. Vous ne l'avez pas mentionné dans votre question. – EJP

+1

@Dear Nous ne pouvons pas deviner votre code sans un [mcve] –