在下面的代码中,我做错了。对不起,如果这有点基础。如果它只是在一个类中,那么我的工作正常,但是当我像下面的代码中那样打破类时,我的工作正常:
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)
任何提示?
答案 0 :(得分:5)
您需要创建ApplesTestDrive
的实例,而不是Apples
。方法就在那里。
所以,而不是
Apples appleOne = new Apples();
DO
ApplesTestDrive appleOne = new ApplesTestDrive();
这与通过引用传递无关(所以我从你的问题中删除了标记)。这只是一个程序员错误(实际上所有的编译错误都是)。
答案 1 :(得分:1)
您正在Apple对象上调用方法paint但是paint方法在AppleTestDrive类中。
请改用此代码:
AppleTestDrive apple = new AppleTestDrive();
apple.paint(bucket);
答案 2 :(得分:0)
System.out.println("Paint apple one: " + appleOne.paint(bucket));
paint是ApplesTestDrive类的一种方法,而appleOne是一个Apples对象,所以你不能在这里调用appleOne.paint。