错误:调用toString方法时找不到符号

时间:2014-08-01 10:48:42

标签: java class methods constructor

作业要求我:

“设计并实现CupDispenser类。每个CupDispenser对象都有一个位置并跟踪它当前包含的杯子数量。定义两个构造函数,为每个数据字段设置和获取方法,以及方法toString。另外,定义方法getOneCup简单地将分配器中杯子的数量减少1.通过创建几个CupDispenser对象来演示你的类。“

这是我的班级档案:

public class CupDispenser
{
// Data Fields
private String location;
private int numberCups;

// Constructors
public CupDispenser(){
  location = "Unknown";
  numberCups = 0;
} 

public CupDispenser(String theLocation, int firstCups){
  location = theLocation;
  numberCups = firstCups;
}

// Methods
public String getLocation(){
  return location;
}

public void setLocation(String location){
  location = location;
}

public int getNumberCups(){
  return numberCups;
}

public void setNumberCups(int numberCups){
  numberCups = numberCups;
}

public void decrementNumberCups(){
  numberCups = numberCups - 1;
} 

//Other
public String toString(){
String result = ("Location: " + location + ". Number of cups: " + numberCups + ".");
return result.toString();
 }
}//end CupDispenser class

这是我的演示文件:

public class CupDispenserDemo{
public static void main(String[] args)
{
CupDispenser cd1 = new CupDispenser("My house", 10);
CupDispenser cd2 = new CupDispenser("Your house", 15);

System.out.println(cd1.toString);
System.out.println(cd2.toString);

cd1.setLocation("Her home");
cd1.setNumberCups(12);

cd2.decrementNumberCups();
cd2.decrementNumberCups();
}
}

在终端中,我成功地获得了CupDispenser.java类,但是对于CupDispenserDemo.java也是如此,因为我得到了这些错误:

CupDispenserDemo.java:14: error: cannot find symbol
 System.out.println(cd1.toString);
                     ^
  symbol:   variable toString
  location: variable cd1 of type CupDispenser
CupDispenserDemo.java:15: error: cannot find symbol
  System.out.println(cd2.toString);
                     ^
  symbol:   variable toString
  location: variable cd2 of type CupDispenser
2 errors

有人可以告诉我该怎么做才能解决我的编码中的这些错误和其他高度可能的错误吗?说实话,我甚至不确定我在做什么,我只是按照书中与这个问题类似的其他例子。非常感谢你的帮助!这对我来说很麻烦,因为我正在通过内容快速移动课程。 :/

1 个答案:

答案 0 :(得分:2)

toString()不是变量,它是一种方法。

您忘了为toString添加()。这两行应该是

System.out.println(cd1.toString());
System.out.println(cd2.toString());