Weird error on driver class

119 views Asked by At

I'm writing a driver class for a piggy bank class that I created. The idea is that it is supposed to add different types of coins (user input) and then total the cents and display them until "X" is input by the user. I think I have the code right, but there is a weird issue where if I use the "countMoney" accessor into the code, it tells me that all of my variables in the driver class are uninitialized. If I remove it, there are no errors shown by Eclipse. I've printed my source and driver class below:

package piggy;

/**
 * @author Kevin
 *
 */

import java.util.Scanner;
import piggy.PiggyBank;
public class PiggyBankTester {

    /**
     * @param args
     */
    public static void main(String[] args) {

        String num = "str", num1;
        int count = 0;
        int money;

        Scanner scan = new Scanner(System.in);
        Scanner scan2 = new Scanner(System.in);

        PiggyBank total = new PiggyBank();

        System.out.println("Welcome to the Piggy Bank Tester");

        System.out.println("What type of coin to add (Q, H, D or X to exit)?");     
        num1 = scan.nextLine();
        num = num1.toUpperCase();
        {
        if (num.equals("X"))

            System.out.println("Goodbye.");
        else if (num != "X")
            {
            System.out.println("How many do you wish to add?");
            count = scan.nextInt();
            if (num.equals("Q"))
                total.addQuarters(count);
            else if (num.equals("H"))
                total.addHalfDollars(count);
            else if (num.equals("D"))
                total.addDollars(count);
            else if (num.equals("X"))
                System.out.println("Goodbye.");


            }
        }


        {   
        total.calculate();
        money = total.countMoney();


        System.out.println("The piggy bank now contains " + money + " cents.");
        }
    }

}
1

There are 1 answers

2
Man H On

You don't need (String Q,D,H,X) . Also you have declared this variables without give them any value just name. A way you can do it is to change your if-else statements and set , for example if you want num to be equal to Q ---> if (num.equals("Q") ) <---