2017-10-10 89 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] –

相關問題