Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将0初始化为两个构造函数?_Java - Fatal编程技术网

Java 如何将0初始化为两个构造函数?

Java 如何将0初始化为两个构造函数?,java,Java,我将令牌计数的值指定为0,但它似乎不起作用。我不知道我的代码出了什么问题。我认为我的代码可以工作,但我只是不知道如何使输出中的令牌计数为0。我在NetBeans中运行了代码,但输出为“Status true” 预期:对,, 令牌计数:2, 预期:2, 数数:18, 预期:8英寸,我正在使用Java public class VendingMachine { public int canCount; public int tokenCount; VendingMachine() { can

我将令牌计数的值指定为0,但它似乎不起作用。我不知道我的代码出了什么问题。我认为我的代码可以工作,但我只是不知道如何使输出中的令牌计数为0。我在NetBeans中运行了代码,但输出为“Status true” 预期:对,, 令牌计数:2, 预期:2, 数数:18, 预期:8英寸,我正在使用Java

public class VendingMachine {
public int canCount;
public int tokenCount;
VendingMachine() {
    canCount = 10;
   tokenCount = 0;
}
VendingMachine(int cans) {
    canCount = cans;
   tokenCount = 0;
}
public void add(int cans) {
    canCount = canCount + cans;
}
public boolean insertToken() {
    if (canCount <= 0) {
        return false;
    } else {
        canCount = canCount - 1;
        tokenCount = tokenCount + 1;
    }
    return true;
}
public int getCanCount() {
    return canCount;
}
public int getTokenCount() {
    return tokenCount;
}

}

到目前为止,您的代码符合老师的要求。构造函数有效地创建了一个对象。在这种情况下,您有两个构造函数
vendingmain()
vendingmain(int-cans)
在各自的代码中将
tokenCount
初始化为0

一行一行地浏览测试仪

VendingMachine machine = new VendingMachine();
此构造函数创建一个名为
machine
的新
vendingment
,其中
canCount
为10,
tokenCount
为0。正如您在这里看到的,您的
tokenCount
为0,只有在以后调用
machine.insertToken()
时才会更改

这将在
机器中“添加”10罐,使
计数现在为20罐<代码>令牌计数
仍为0

boolean status;
这将创建一个名为
status
的局部变量

machine.insertToken();
此“插入”一个“令牌”,将
canCount
变为19,将
tokenCount
变为1

status = machine.insertToken();
这将“插入”一个“令牌”,并将
true
存储到
status
并将
canCount
变为18,将
tokenCount
变为2


当然,您的
tokenCount
将是2,因为您调用了
insertToken()
两次。但是,您需要更改can计数的预期输出或删除
添加(10)
。这是一个相当琐碎的编程。我将考虑如何使用调试器,因为它确实有助于了解您的代码在幕后所做的事情。

请将您的代码和所有东西移到此处,而不是放置LINKpublic类抛售机{ public int CANCOUNT;{canCount=10;tokenCount=0;}自动售货机(int-cans){canCount=cans;tokenCount=0;}公共空添加(int-cans){canCount=canCount+cans;}公共布尔插入令牌(){if(canCount-public-int-getCanCount(){返回canCount;}public int getTokenCount(){return tokenCount;}}编辑您的问题并在那里插入代码,它在注释中不可读……您说的“不工作”是什么意思您运行了哪些测试?结果是什么?感谢您向我解释,因为我刚刚开始学习Java语言,所以大多数时候我只是问一些愚蠢的问题。非常感谢。欢迎您。如果您认为我成功回答了您的问题,请务必接受答案。
machine.insertToken();
status = machine.insertToken();