编写定义类的代码。班级名称应为Counter
. (想一想:这对文件名意味着什么?请记住,我们希望这是一个public
类,以便我们可以将其用于测试。) ACounter
用于计算事物(不足为奇)。
为此,该类的每个实例都将包含一个“计数”值。(想一想:这个值的好名字是什么?我们如何为属于实例的类的每个实例创建一个单独的值?)该值不应为负数。(很明显;你怎么会有负数的事情?)你应该确保值不会变成负数(如果你以远程正常的方式做事,这应该自动发生)。
该类应提供以下功能:
将计数值设置为 0 的方法。(想一想:这个方法的好名字是什么?public
当然应该,因为它是其他代码如何使用该类的一部分。想一想:你需要为此提供任何参数吗?方法?如果是,是什么?)
一种将计数增加 1 的方法。(思考:如上。)
一种将计数减 1 的方法。(想一想:如上。另外,如果计数已经为 0,鉴于我们不能让它变为负数,会发生什么?决定在这种情况下该怎么做。)
返回当前计数值的方法。(这称为“访问器”)。
一种显示当前计数值的方法。(注意:这在设计方面是一个非常糟糕的主意,但你的作业需要它。提示:使用其中一种方法System.out
输出到屏幕。)
调用的方法toString
返回计数器的字符串表示形式。这不应该带任何参数,并且必须返回一个字符串。(这是 Java 中大多数对象提供的标准功能。想一想:除了计数值之外,字符串中是否应该包含其他任何内容?)
一个调用的方法equals
,将 Counter 与另一个 Counter 进行比较以获得相等性。此方法必须只接受一个参数,一个 Counter 实例,并返回一个boolean
指示两个 Counters 是否相等的值。(思考:是什么决定了两个计数器是否“相等”?)
该类不应提供以下任何功能:
- 更改计数器值的任何其他方法(尤其是不是从标准输入读取值的方法)。
编写一个程序来创建一些Counter
实例并使用它们的方法。Counter
该程序应该通过产生与您对阅读主程序的期望一致的输出来证明您的类的行为符合预期。(提示:由于这是 Java,我们将需要该程序的另一个类,带有public static void main(String[] args)
方法。将它放在另一个文件中。您可能需要使用package
andimport
语句,以便主程序可以Counter
在另一个文件中找到您的类。确保您了解如何编译和运行 Java 类。)