java - 错误: cannot find symbol while calling toString method

标签 java class methods constructor

作业要求我:

“设计并实现 CupDispenser 类。每个 CupDispenser 对象都有一个位置,并跟踪它当前包含的杯子数量。定义两个构造函数,为每个数据字段定义两个构造函数、set 和 get 方法,以及 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();
}
}

在终端中,我成功地 javac'd 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

有人可以告诉我该怎么做才能修复这些错误以及编码中其他极有可能出现的错误吗?老实说,我什至不确定我在做什么,我只是遵循书中与这个问题类似的其他示例。十分感谢你的帮助!这对我来说很麻烦,因为我正在类的类(class)内容变化得如此之快。 :/

最佳答案

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

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

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

关于java - 错误: cannot find symbol while calling toString method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25078578/

相关文章:

go - 接口(interface)作为结构中的字段,接口(interface)调用将输入作为相同结构的方法

java - 如何检测这个符号: '' (OBJ in Dashed Box) in Android

java - 如何使用sql的准备语句?

java - 如何在java中读取xls图表?

python - 如何在不编辑原始模块的情况下从第三方 Python 模块向类添加方法

Python继承 - 在子类中调用基类方法?

ios - 为什么对象没有添加到我的数组中?

ruby-on-rails - rails : how to test if parent has grandchildren present in child model

java - 将 DLL 包装成 Java

ruby - 在类中的每个方法之前运行代码 (Ruby)