2013-03-25 42 views
-2

我是面向對象編程的新手。我正在創造物體。當我從另一個叫做CatDemo的程序調用它時,我有類貓,我想畫一個圓圈(代表一隻貓)。這不起作用,我想知道在製作對象時是否有任何方法繪製對象。在調用類時繪製對象

這裏是我的貓代碼:

public class Cat { 

    public static void main(String[] args){ 
     StdDraw.circle(0.1, 0.1, 0.1); 
    } 
} 

在這裏,我想作一個新的貓。

public class CatDemo { 
    public static void main(String[] args) { 

     // Create two different 
     // Cat objects 
     Cat cat1 = new Cat(); 
     Cat cat2 = new Cat(); 
    } 
} 
+0

什麼是你的問題? – amphibient 2013-03-25 21:29:49

+0

如果您希望創建一個新的Cat時執行'Cat#main',那麼您就完全錯了。這是非常基本的。請檢查Java書籍或教程。 – m0skit0 2013-03-25 21:30:08

+0

@ m0skit0顯然它對OP來說不是基本的;他們問了一個關於它的問題。 – feralin 2013-03-25 21:36:17

回答

4

你目前正在做的是創建一個main你班上的方法Catvoid main(String[])稱爲程序的入口點;當您運行程序時,代碼將從main方法開始執行。如果要在構建Cat時運行代碼,則必須爲Cat創建構造函數。這裏是你想要的東西(我認爲):

public class Cat 
{ 
    // this is the constructor. it is run whenever you make a new Cat object. 
    public Cat() 
    { 
     StdDraw.circle(0.1, 0.1, 0.1); 
    } 
} 
public class CatDemo { ... original code is fine ... } 
+0

+1用於解釋什麼是'main'和一個構造函數是在Java中而不是僅僅提供代碼。您可能還想解釋一下什麼是實例,以及與「static」的區別。 – m0skit0 2013-03-25 21:32:39

+0

如果OP不理解main()和構造函數之間的區別,那麼他/她應該讀一本關於Java的書。這將是一個更好的解釋,我可以給... – feralin 2013-03-25 21:35:37

+0

他顯然沒有。這就是爲什麼我懶得回答這個問題(請參閱我對OP的評論)。恕我直言,這個問題不符合SO標準的建設性。 – m0skit0 2013-03-25 21:37:03

2

取而代之的是main方法(當你運行Cat執行)的:

public static void main(String[] args){ 
    StdDraw.circle(0.1, 0.1, 0.1); 
} 

使用構造(當Cat是執行創建):

public Cat(){ 
    StdDraw.circle(0.1, 0.1, 0.1); 
}