本文目錄一覽:
怎麼用JAVA編程編寫一個計算器?
打開IED:打開自己java編程的軟件,採用的是eclipse軟件。
建立java工程。
編寫類。
編寫類的詳細步驟
1.類的基本結構:
由於這裡用到了界面,所以要進行窗口界面的編程,按鈕事件的處理,和計算處理界面;
package MyCaculator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCaculator extends JFrame {
private int add=1,sub=2,mul=3,div=4;
private int op=0;
boolean ifOp;
private String output=”0″;
private Button[] jba=new Button[]{new Button(“7”),new Button(“8”),
new Button(“9”),new Button(“+”),
new Button(“4”),new Button(“5”),new Button(“6”),new Button(“-“),
new Button(“1”),new Button(“2”),new Button(“3”),new Button(“*”),
new Button(“0”),new Button(“.”),new Button(“=”),new Button(“/”)};
private JPanel jpt=new JPanel();
private JPanel jpb=new JPanel();
private JTextField jtf=new JTextField(“”);
private MyCaculator(){
}
private void operate(String x){
}
public String add(String x){
return output;
}
public String subtract(String x){
return output;
}
public String multiply(String x){
return output;
}
public String divide(String x){
return output;
}
public String Equals(String x){
return output;
}
public void opClean(){
}
class setOperate_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
class setLabel_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
public static void main(String[] args) {
}
}
2.建立構造方法:
所謂構造方法就是,對自己的主類進行初始化,代碼如下:
private MyCaculator(){
jpt.setLayout(new BorderLayout());
jpt.add(jtf);
this.add(jpt,BorderLayout.NORTH);
jpb.setLayout(new GridLayout(4,4));
for(int i=0;ijba.length;i++){
jpb.add(jba[i]);
if(i==3||i==7||i==11||i==15||i==14)
jba[i].addActionListener(new setOperate_Act());
else
jba[i].addActionListener(new setLabel_Act());
}
this.add(jpb,BorderLayout.CENTER);
this.setSize(250, 200);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
3.建立數據計算方法
這裡的數據計算方法有6個,一個是主方法其他幾個是加減乘除的處理方法,代碼如下:
private void operate(String x){
double x1=Double.valueOf(x);
double y=Double.valueOf(output);
switch(op){
case 0:output=x;break;
case 1:output=String.valueOf(y+x1);break;
case 2:output =String.valueOf(y-x1);break;
case 3:output =String.valueOf(y*x1);break;
case 4:
if(x1!=0) output=String.valueOf(y/x1);
else output=”不能為0″;
break;
}
}
public String add(String x){
operate(x);
op=add;
return output;
}
public String subtract(String x){
operate(x);
op=sub;
return output;
}
public String multiply(String x){
operate(x);
op=mul;
return output;
}
public String divide(String x){
operate(x);
op=div;
return output;
}
public String Equals(String x){
operate(x);
op=0;
return output;
}
public void opClean(){
op=0;
output =”0″;
}
4.事件處理方法
這裡的時間處理方法,沒有建立一個整體的方法,二是在為了便於處理的方法,將按鈕事件分成兩個部分,並採用兩個子類來實現,這兩個類時內部類要寫在主類內部的,代碼如下:
class setOperate_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jba[3]){
jtf.setText(add(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[7]){
jtf.setText(subtract(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[11]){
jtf.setText(multiply(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[15]){
jtf.setText(divide(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[14]){
jtf.setText(Equals(jtf.getText()));
ifOp=true;
}
}
}
class setLabel_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
Button tempb=(Button)e.getSource();
if(ifOp){
jtf.setText(tempb.getLabel());
ifOp=false;
}else {
jtf.setText(jtf.getText()+tempb.getLabel());
}
}
}
5.建立main方法:
要想實現我們的代碼,我們需在main方法中,實例化我們的對象。
public static void main(String[] args) {
new MyCaculator();
}
用java程序編寫一個計算器
不太完善,你再加點輸入的邏輯判斷什麼的,這個演示只能輸入正確的數據才能運行,否則會報錯,僅供參考。(求採納啊)publicclassC{staticDoublers;publicstaticDoubleyunsuan(Stringr,Doublea1,Doublea2){Doubleresult;if(r.equals(“+”)){result=a1+a2;System.out.println(“運算結果為:”+result);}elseif(r.equals(“-“)){result=a1-a2;System.out.println(“運算結果為:”+result);}elseif(r.equals(“*”)){result=a1*a2;System.out.println(“運算結果為:”+result);}elseif(r.equals(“/”)){result=a1/a2;System.out.println(“運算結果為:”+result);}else{result=a1*a2;System.out.println(“運算結果為:”+result);}returnresult;}publicstaticvoidmain(String[]args){intss=0;while(ss==0){Scannerscan=newScanner(System.in);System.out.println(“請輸入第一個數:”);Doublea1=scan.nextDouble();System.out.println(“請輸入運算符(+、-、*、/、%):”);Stringr=scan.next();System.out.println(“請輸入第二個數:”);Doublea2=scan.nextDouble();rs=yunsuan(r,a1,a2);System.out.println(“請輸入指令(繼續運算/新的運算/結束運算)”);Stringff=scan.next();if(ff.equals(“繼續運算”)){System.out.println(“請輸入運算符(+、-、*、/、%):”);r=scan.next();System.out.println(“請輸入第二個數:”);Doublea3=scan.nextDouble();rs=yunsuan(r,rs,a3);System.out.println(“請輸入指令(繼續運算/新的運算/結束運算)”);ff=scan.next();}elseif(ff.equals(“新的運算”)){continue;}else{ss=1;}}}}
java編程,用代碼實現計算器類(Calculator)
public class Calculator {
private int number1;
private int number2;
public Calculator(int number1, int number2) {
this.number1 = number1;
this.number2 = number2;
}
public double add() {
return number1 + number2;
}
public double subtract() {
return number1 – number2;
}
public double multiple() {
return number1 * number2;
}
public double divide() {
if(number2 == 0) {
return 0;
}
return number1 / number2;
}
}
public class TestCalculator {
public static void main(String[] args) {
Calculator calculator = new Calculator(5, 2);
System.out.println(calculator.add());
System.out.println(calculator.subtract());
System.out.println(calculator.multiple());
System.out.println(calculator.divide());
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/230253.html