java多类计算器
我正在尝试使用多个类制作一个简单的计算器。我可以在一个类中创建一个,但现在我想尝试使用两个类创建一个。我在从OperationClass调用一些变量(fnum、snum、answer)时遇到问题。
如果我按照现在编写的方式运行程序,则返回0作为答案。
我尝试在OperationClass中公开变量fnum、snum和answer,但没有成功。
我还尝试了公共类操作类扩展计算器。这也不管用
我知道我错过了一些非常简单的事情。我就是不能用别针指着它
计算器类:
import java.util.Scanner;
public class Calculator{
public static void main(String[] args) {
OperationClass operationObject = new OperationClass();
Scanner input = new Scanner(System.in);
double userInput;
int userChoice;
System.out.print("Please Enter The First Number: ");
userInput = input.nextDouble();
System.out.print("Please Enter The Second Number: ");
userInput = input.nextDouble();
System.out.println("Please Select Operation to Perform:");
System.out.println("1-Addition");
System.out.println("2-Subtraction");
System.out.println("3-Division");
System.out.println("4-Multiplication");
userChoice = input.nextInt();
switch (userChoice){
case 1:
operationObject.addition();
System.out.println();
break;
case 2:
operationObject.subtraction();
break;
case 3:
operationObject.division();
break;
case 4:
operationObject.multiplication();
break;
}
}
}
操作类:
public class OperationClass{
double fnum, snum, answer;
public void addition(){
answer = fnum + snum;
System.out.println(answer);
}
public void subtraction(){
answer = fnum - snum;
System.out.println(answer);
}
public void division(){
answer = fnum / snum;
System.out.println(answer);
}
public void multiplication(){
answer = fnum * snum;
System.out.println(answer);
}
}
# 1 楼答案
您需要将第一个和第二个
int
作为参数传递。这包括重新编写方法对象以接受2个参数,或者创建一个接受2个参数的构造函数,并在输入数字后实例化对象要创建构造函数(这将允许您在类中设置变量并使用它们):
然后在实例化对象时调用它(同样,在输入了数字之后,),使用:
您还需要修改输入,以便这两个输入包含不同的变量。这样就可以将它们作为参数传递
# 2 楼答案
首先,需要将两个输入的值存储到不同的变量中,以便第二个变量不会覆盖第一个变量:
输入后,可以将这些变量传递给
OperationClass
的方法:# 3 楼答案
OperationClass中没有将fnum和snum设置为任何值,因此它们的值为零。删除这些成员变量,并更改加法()减法()等方法,将其作为参数,如下所示:
# 4 楼答案
将这两个数字收集到一个名为
userInput
的变量中。第一个被第二个覆盖,然后你再也不会引用它了。为了让OperationClass
处理这些值,您应该有方法来设置这些值,或者将它们作为参数传递给正在执行的操作对于第一种情况,可以添加如下setter方法:
然后,在从用户那里得到一个值之后,使用这些方法设置它
第二种方法是,可以让
OperationClass
中的方法将这两个数字都作为参数,并且永远不要在内部设置它# 5 楼答案
您需要将用户输入的值传递给
OperationClass
类。 有多种方法可以做到这一点1)选项一。更改方法以接受某些参数,例如:
要在
Calculator
中获得结果,可以执行以下操作:您必须将用户输入存储在两个不同的变量中
2)将用户的输入作为类变量存储在
OperationClass
中要传递来自
Calculator
的值,可以这样做