这是最后一部分创建构造函数我不明白这种自动售货机类
到目前为止,自动售货机类没有任何构造函数。不带构造函数的类的实例始终构造为所有实例变量设置为零(如果它们是对象引用,则为null)。提供一个明确的构造函数总是一个好主意。
提供两个构造为自动售货机类:
1),其与10个汽水罐
2)构造函数初始化的自动售货机中的默认的构造,自动售货机(INT罐),初始化自动售货机与罐给定数量的 两个构造函数应该初始化令牌计数为0
这个方案实验室是:
2.1。在这个实验中,你将实施一台装有苏打水的自动售货机。要购买一罐苏打水,顾客需要在机器中插入一个令牌。当令牌被插入时,罐头可以从罐头储存器落入产品交付槽中。自动售货机可以装满更多罐头。目标是确定在任何给定时间机器中有多少罐和令牌。
您会为VendingMachine类提供哪些方法?非正式描述他们。
2.2。现在将这些非正式描述翻译成Java方法签名,如
public void fillUp(int cans)
给出方法的名称,参数和返回类型。不要执行它们。
2.3。这些方法需要哪些实例变量来完成他们的工作?提示:您需要跟踪罐和令牌的数量。
用它们的类型和访问修饰符声明它们。
2.4。考虑用户在自动售货机中插入令牌时会发生什么情况。令牌数量增加,罐头数量减少。实现方法:
public void insertToken()
{
// Instructions for updating the token and can counts
}
您需要使用您在上一步中定义的实例变量。 不要担心自动售货机中没有罐子的情况。在本课程后面,您将学习如何编写决定“如果可以计数> 0”。现在,假设如果自动售货机为空,则不会调用insertToken方法。
2.5。现在实现一个方法`fillUp(int cans) 向机器添加更多罐子。只需将新罐的数量添加到罐数即可。
2.6。接下来,实现两个方法getCanCount和getTokenCount,它们返回罐和令牌计数的当前值。 (您可能需要查看BankAccount类的getBalance方法以获得指导。)
2.7。你已经实现了VendingMachine类的所有方法。 把它们连成一个类,像这样:
public class VendingMachine
{
private your first instance variable
private your second instance variable
public your first method
public your second method
. . .
}
2.8现在完成以下测试程序,以便它行使所有的类的方法。
public class VendingMachineTester
{
public static void main(String[] args)
{
VendingMachine machine = new VendingMachine();
machine.fillUp(10); // Fill up with ten cans
machine.insertToken();
machine.insertToken();
System.out.print("Token count: ");
System.out.println(machine.getTokenCount());
System.out.println("Expected: . . .");
System.out.print("Can count: ");
System.out.println(machine.getCanCount());
System.out.println("Expected: . . .");
}
}
“没有构造函数的类的实例总是与设置为零的所有实例变量构建” - 这是不正确的开始,如字段可以有字段初始值...我稍微担心你使用的教科书(或其他)的质量:( –
)不同意“太广泛的投票”。他显示整个实验室,并说他不明白的是如何创建两个构造函数,一个需要一个参数,另一个使用默认值。没有太多关于这个的。 – nhouser9
问题是,有太多的实验室张贴在这里t与潜在的问题无关。如果这些位被删除并且相关的位都是剩下的,这将是一个完全合理的问题。 –