在我的课堂上,我们需要用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;
}
}
}
}
答案 0 :(得分:2)
你对程序的看法是创建一个单独的类,它包含计算器程序的所有代码,在其中实例化同一类的对象。
您的老师想要的是,您有两个单独的类,一个包含使计算器工作的代码,另一个类,您实例化第一个类的对象,并调用该类中包含的方法
对于您的作业,我建议的是创建一个新类,可能称为Main
,您的程序的Main()
方法将在其中,并保留所有代码MemoryCalculator
课程中的计算器程序。从那里,您可以实例化MemoryCalculator
类的对象(您已经做过,称为instance
)并使用方法调用来引用MemoryCalculator
类中的方法和属性。
这可能需要重新编写一些代码,以便它能够正常运行,因为您将从MemoryCalculator
类的对象调用大部分代码,但它应该是可行的。