2017-10-10 81 views
-4

我想从我的静态主要方法调用无效方法。以下是我的:从静态主要方法调用无效方法

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); 
} 

如果有人可以帮助它,将不胜感激。该文本说:“在创建Scene对象的行的正下方添加一个调用动画的主方法。”如果有帮助。

+0

删除'Animate animate = new animate();'。 – melpomene

+0

我仍然得到“无法从静态上下文中引用非静态元素” – Dearerburrito

+0

您正尝试从* main方法中调用方法*。不是'要'。 – EJP

回答

0

变化:

public void animate(){ 

要:

public static void animate(){ 

您试图调用从静态的非静态方法。


如果animate()是一个实例成员,你实例化对象,并从该对象调用animate()

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

现在我的变量“太阳”和“月亮”不在上下文中,因为它们不是静态的 – Dearerburrito

+0

如果animate()是类的一部分,则实例化对象并从该对象调用animate()。如果animate()只是与main()一起存在的方法,则将其设置为静态。 – user3437460

+0

当我实例化它时,我仍然得到“无法找到符号 - 类动画” – Dearerburrito

2

假设Animate是一个适当的类,你需要调用实例方法上的实际实例。

例如。

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

否则,请查看Scene类。你应该动画?

+0

我很抱歉,但是当我这样做“Animate”和“Animate()”不能作为符号找到。 – Dearerburrito

+1

@Dearerburrito这也可能是你发布的代码有问题。你没有在你的问题中提及它。 – EJP

+1

@Dear我们不能在没有[mcve] –