用java实现实现一个计算器程序要求:计算和显示分开也就是业务逻辑与界面逻辑分开它们之间的耦合度下降容易维护和扩展实现软件设计的正确性、健壮性、高效性、可复用性、可维护性等目标。
以下是一个简单的用Java实现计算器程序的示例:
首先,我们需要定义一个Calculator类来处理计算逻辑:
public class Calculator {
public static double add(double num1, double num2) {
return num1 + num2;
}
public static double subtract(double num1, double num2) {
return num1 - num2;
}
public static double multiply(double num1, double num2) {
return num1 * num2;
}
public static double divide(double num1, double num2) {
if (num2 == 0) {
throw new IllegalArgumentException("Division by zero is not allowed.");
}
return num1 / num2;
}
}
这个类有四个静态方法,分别用于执行加、减、乘、除操作。
然后,我们需要实现一个GUI界面来处理用户输入和显示结果。我们可以使用Java Swing库来创建一个简单的窗口,其中包含文本框、按钮和标签:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CalculatorGUI implements ActionListener {
private JFrame frame;
private JPanel panel;
private JTextField num1Field, num2Field, resultField;
private JLabel num1Label, num2Label, resultLabel;
private JButton addButton, subtractButton, multiplyButton, divideButton;
public CalculatorGUI() {
// Create a new JFrame
frame = new JFrame("Calculator");
// Create a new JPanel
panel = new JPanel();
// Create text fields
num1Field = new JTextField(10);
num2Field = new JTextField(10);
resultField = new JTextField(10);
resultField.setEditable(false);
// Create labels
num1Label = new JLabel("Number 1:");
num2Label = new JLabel("Number 2:");
resultLabel = new JLabel("Result:");
// Create buttons
addButton = new JButton("+");
subtractButton = new JButton("-");
multiplyButton = new JButton("*");
divideButton = new JButton("/");
// Add action listeners to buttons
addButton.addActionListener(this);
subtractButton.addActionListener(this);
multiplyButton.addActionListener(this);
divideButton.addActionListener(this);
// Add components to panel
panel.add(num1Label);
panel.add(num1Field);
panel.add(num2Label);
panel.add(num2Field);
panel.add(resultLabel);
panel.add(resultField);
panel.add(addButton);
panel.add(subtractButton);
panel.add(multiplyButton);
panel.add(divideButton);
// Add panel to frame
frame.add(panel);
// Set frame properties
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
double result = 0;
if (e.getSource() == addButton) {
result = Calculator.add(num1, num2);
} else if (e.getSource() == subtractButton) {
result = Calculator.subtract(num1, num2);
} else if (e.getSource() == multiplyButton) {
result = Calculator.multiply(num1, num2);
} else if (e.getSource() == divideButton) {
try {
result = Calculator.divide(num1, num2);
} catch (IllegalArgumentException ex) {
JOptionPane.showMessageDialog(frame, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
return;
}
}
resultField.setText(String.valueOf(result));
}
public static void main(String[] args) {
new CalculatorGUI();
}
}
在这个程序中,我们创建了一个CalculatorGUI类来实现GUI界面,并实现了ActionListener接口来处理按钮点击事件。在actionPerformed方法中,我们将从文本框中获取输入的数字,并调用Calculator类中相应的方法进行计算。如果出现除零错误,我们将显示一个错误消息框。
最后,在main方法中,我们创建了一个CalculatorGUI对象,以启动GUI程序。
这是一个简单的Java计算器程序示例,它将业务逻辑和界面逻辑分开,以实现软件设计的目标
原文地址: https://www.cveoy.top/t/topic/eiLd 著作权归作者所有。请勿转载和采集!