Your code is correct for your teacher’s requirements so far. Constructors effectively create an Object. In this case you have 2 constructors VendingMachine()
and VendingMachine(int cans)
both of which in their respective code initialize tokenCount
to 0.
Walking through your Tester line by line
VendingMachine machine = new VendingMachine();
This constructor creates a new VendingMachine
called machine
with canCount
of 10 and tokenCount
of 0. As you can see here your tokenCount
is 0 it only changes later when you call machine.insertToken()
.
machine.add(10);
This “adds” 10 cans to machine
making the canCount
now 20. tokenCount
is still at 0
boolean status;
This creates a local variable called status
.
machine.insertToken();
This “inserts” a “token” which turns the canCount
to 19 and tokenCount
to 1.
status = machine.insertToken();
This “inserts” a “token” and stores true
to status
and turns canCount
to 18 and tokenCount
to 2.
Naturally your tokenCount
is going to be 2 because you called insertToken()
twice. However you need to change your expected output for can count or remove the add(10)
. This is rather trivial programming. I would consider looking into how to use the debugger as it really helps see what your code is doing behind the scenes.
2
solved how do I initialize 0 to both constructors? [closed]