我正在编写一个简单的java程序,使用面向对象技术执行添加和乘法。首先,它询问操作Addition,Multiplication或Exit。当按下加法和乘法按钮时,它会从用户获得两个数字,执行任务并给出结果。但是我的问题是当按下退出按钮时它不会终止,而是要求输入数字。
我要问的第二件事是我遵循面向对象的方法。
import javax.swing.JOptionPane;
public class Calculator {
private static int number1;
private static int number2;
public static void setNumber1(int n1) {
number1 = n1;
}
public static void setNumber2(int n2) {
number2 = n2;
}
public static int getNumber1() {
return number1;
}
public static int getNumber2() {
return number2;
}
public static void numbers(){
int n=Integer.parseInt(JOptionPane.showInputDialog("Enter first number:"));
int nn=Integer.parseInt(JOptionPane.showInputDialog("Enter first number:"));
setNumber1(n);
setNumber2(nn);
}
public static void calculate(int o){
switch(o){
case 0:
JOptionPane.showMessageDialog(null, "Addition is :"+(number1+number2));
break;
case 1:
JOptionPane.showMessageDialog(null, "Product is :"+(number1*number2));
break;
case 2:
System.exit(0);
break;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//Custom button text
Object[] options = {"Addition","Product", "Exit!"};
int op = JOptionPane.showOptionDialog(null,"What operation Would you like to perform ?","Addition or Product Calculator",
JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
null,options,options[2]);
Calculator c=new Calculator();
c.numbers();
c.calculate(op);
}
}
答案 0 :(得分:1)
您的程序不会退出的问题是您正在调用numbers
方法,该方法在calculate
方法中的检查选项之前读取数字。因此,您可以通过numbers
检查op = 2
来阻止调用if
方法。
这样做的代码是:
Calculator c=new Calculator();
if(op!=2) {
c.numbers();
}
c.calculate(op);
答案 1 :(得分:0)
它要求数字的原因是因为您之前调用了方法 numbers() 计算(int o)。您必须切换订单,但需要对代码进行一些修改。
关于OOP,Java纯粹是OOP。但是为了充分利用它,可以继续阅读和运用面向对象的概念,如继承,接口......