内存计算器混淆java

时间:2015-10-08 04:23:03

标签: java

在我的课堂上,我们需要用Java制作一个内存计算器。我是Java的新手,并帮助制作了这个程序。转入它,老师说"请使用main()方法将MemoryCalculator类与类分开。目前您创建类的方式,没有理由创建类的实例。但是赋值的目的是使用单独的类和对象。"这是一个超长的一周和中期,在这个时候刚刚失去了。任何帮助都会很棒。

import java.util.Scanner;

public class MemoryCalculator {


        private double currentValue;
        //Methods
        //Scanner
        public static int displayMenu(){
                    Scanner input = new Scanner(System.in);
                    System.out.print("Lets do some math! \nMenu \n1. Add \n2. Subtract \n3. Multiply \n4. Divide \n"
                                    + "5. Clear \n6. Quit \n\nWhat would you like to do? ");
                    int menuChoice = input.nextInt();
                    return menuChoice;
        }

        public static double getOperand(String prompt) {
            Scanner input = new Scanner(System. in );
            double operand;
            System.out.println(prompt);
            operand = input.nextDouble();
            return operand;
        }

        //Current Value
        //Gets
        public double getCurrentValue() {
            return currentValue;
        }
        //Setter
        public void setCurrentValue(double currentValue) {  
            this.currentValue = currentValue;  
        }
        //Add
        public void add(double operand2) {
            currentValue += operand2;
        }
        //Subtract
        public void subtract(double operand2) {
            currentValue -= operand2;
        }
        //Multiply
        public void multiply(double operand2) {
            currentValue *= operand2;
        }
        //Divide
        public void divide(double operand2) {
            if (operand2==0){
                            setCurrentValue(0);    
                    }
                    currentValue /=operand2;
        }
        //Clear
        public void clear() {
            currentValue = 0;
        }



        //Main part of the calculator
        public static void main(String[] args) {

            MemoryCalculator instance = new MemoryCalculator();
            double operand;
            boolean repeat = true;


            while (repeat) {
                System.out.println("The current value is: " + instance.getCurrentValue() + "\n");
                int menuChoice;
                menuChoice = displayMenu();

                if (menuChoice > 6 || menuChoice < 1){
                                    System.out.println("I'm sorry, " + menuChoice + " wasn't one of the options\n");
                }

            switch(menuChoice){
                case 1:
                    operand = getOperand("What is the second number?");
                    instance.add(operand);
                    break;
                case 2:
                    operand = getOperand("What is the second number?");
                    instance.subtract(operand);
                    break;
                case 3:
                    operand = getOperand("What is the second number?");
                    instance.multiply(operand);
                    break;
                case 4:
                    operand = getOperand("What is the second number?");
                    instance.divide(operand);
                    break;
                    case 5:
                    instance.clear();
                    break;
                    case 6:
                            System.out.println("Goodbye have a great day");
                            System.exit(0);
                            break;

            }
        }    
    }
}

1 个答案:

答案 0 :(得分:2)

你对程序的看法是创建一个单独的类,它包含计算器程序的所有代码,在其中实例化同一类的对象。

您的老师想要的是,您有两个单独的类,一个包含使计算器工作的代码,另一个类,您实例化第一个类的对象,并调用该类中包含的方法

对于您的作业,我建议的是创建一个新类,可能称为Main,您的程序的Main()方法将在其中,并保留所有代码MemoryCalculator课程中的计算器程序。从那里,您可以实例化MemoryCalculator类的对象(您已经做过,称为instance)并使用方法调用来引用MemoryCalculator类中的方法和属性。

这可能需要重新编写一些代码,以便它能够正常运行,因为您将从MemoryCalculator类的对象调用大部分代码,但它应该是可行的。