2010-10-01 287 views
3

在下面的代碼中,我做了錯誤的事情。對不起,如果這是一個基本的。我得到這個工作的罰款,如果這一切都在一個班,但不是我在下面的代碼打破類像:Java,將字符串從一個類傳遞到另一個類

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

     String bucket = "green"; //instance variable 

     Apples appleOne = new Apples(); //create new object (appleOne) from Apples class 

     System.out.println("Paint apple one: " + appleOne.paint(bucket)); 
     System.out.print("bucket still filled with:" + bucket); 

     }//end main 

    }//end class 

class ApplesTestDrive{ 

    public String paint(String bucket){ 

     bucket = "blue"; //local variable 
     return bucket; 

     }//end method 

    }//end class 

錯誤消息:

location:class Apples 
cannot find symbol 
pointing to >> appleOne.paint(bucket) 

任何提示?

+1

你會得到什麼錯誤? – EricBoersma 2010-10-01 15:09:21

+0

@EricBoersma,它在底部,但我現在編輯了這個問題,使其脫穎而出。 – 2010-10-01 15:11:06

回答

6

您需要創建ApplesTestDrive的實例,而不是Apples。該方法在那裏。

所以,與其

Apples appleOne = new Apples(); 

ApplesTestDrive appleOne = new ApplesTestDrive(); 

這有什麼好做引用傳遞(所以我刪除從你的問題的標記)。這只是程序員的錯誤(幾乎所有的編譯錯誤都是)。

+0

@非常感謝你讓我走上正軌。你的幫助對我很有價值!再次感謝。 – raoulbia 2010-10-01 15:27:05

+0

不客氣。 – BalusC 2010-10-01 15:33:53

2

您正在調用Apple對象的方法paint但是paint方法在AppleTestDrive類中。

使用此代碼來代替:

AppleTestDrive apple = new AppleTestDrive(); 
apple.paint(bucket); 
0

System.out.println("Paint apple one: " + appleOne.paint(bucket)); 漆是ApplesTestDrive類的方法和appleOne是蘋果objject,所以你不能在這裏打電話appleOne.paint。

相關問題