这个小demo,不知道有没面向对象的思想在里面?

[code="java"]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import com.shenchen.model.Item;
import com.shenchen.type.Types;
import com.shenchen.util.Calculator;

public class Main {

public static void main(String[] args) throws Exception, IOException {

    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    Item item = new Item();
    Double num1 = Double.parseDouble( br.readLine());
    item.setNum1(num1);

    System.out.println("请输入一个运算符号:");
    String str = br.readLine();
    switch (str) {
    case "+":
        item.setType(Types.JIA);
        break;

    case "-":
        item.setType(Types.JIAN);
        break;

    case "*":
        item.setType(Types.CHENG);
        break;

    case "/":
        item.setType(Types.CHU);
        break;
    default:
        System.out.println("符号错误!");
        System.exit(0);
    }

    System.out.println("请输入一个数字:");
    Double num2 = Double.parseDouble(br.readLine());
    item.setNum2(num2);

    new Calculator(item);
}

}

public class Item {
double num1;
double num2;
int type;

public void setNum1(double num1) {
    this.num1 = num1;
}

public void setNum2(double num2) {
    this.num2 = num2;
}

public void setType(int type) {
    this.type = type;
}

public double getNum1() {
    return num1;
}

public double getNum2() {
    return num2;
}

public int getType() {
    return type;
}

}

public class Types {
public final static int JIA = 1;
public final static int JIAN = 2;
public final static int CHENG =3;
public final static int CHU = 4;

}

import com.shenchen.model.Item;
import com.shenchen.type.Types;

public class Calculator {
double result;
public Calculator(Item item) {
double num1 = item.getNum1();
double num2 = item.getNum2();
switch (item.getType()) {
case Types.JIA:
result = num1+num2;
System.out.println(num1+"+"+num2+" = "+result);
break;
case Types.JIAN:
result = num1-num2;
System.out.println(num1+"-"+num2+" = "+result);
break;
case Types.CHENG:
result = num1*num2;
System.out.println(num1+"*"+num2+" = "+result);
break;
case Types.CHU:
result = num1/num2;
System.out.println(num1+"/"+num2+" = "+result);
break;

}

}

}

[/code]

将计算的抽一个接口出来ICalculator,具体计算实现该接口。如果要加功能,添加其它计算方法,添加实现类就好了,另外可以弄一个Factory负责创建这些Calculator。代码简单贴一下。

[code="java"]
public interface ICalculator {
public double calculate(double ...args);
}
[/code]

[code="java"]
//加法
public class PlusCalculator implements ICalculator {
@Override
public double calculate(double... args) {
double res = 0;
for(double arg:args)
res += arg;
return res;
}
}
[/code]

[code="java"]
//减法
public class MinusCalculator implements ICalculator {

@Override
public double calculate(double... args) {
    if (args.length == 0)
        return 0;
    double res = args[0];
    for (int i = 1; i < args.length; ++i) {
        res -= args[i];
    }
    return res;
}

}
[/code]

[code="java"]
//平方
public class SquareCalculator implements ICalculator {
@Override
public double calculate(double... args) {
//只接受一个参数
if(args.length == 1)
return args[0]*args[0];
else
return 0;
}
}
[/code]

[code="java"]
//操作类型
public enum CalculatorType {
PlusCalculator,MinusCalculator,SquareCalculator;
}
[/code]

[code="java"]
//工厂
public class CalculatorFactory {

public static ICalculator getCalculator(CalculatorType type) {
    ICalculator calculator = null;
    switch (type) {
    case MinusCalculator:
        calculator = new MinusCalculator();
        break;
    case PlusCalculator:
        calculator = new PlusCalculator();
        break;
    case SquareCalculator:
        calculator = new SquareCalculator();
        break;
    default:
        break;
    }
    return calculator;
}

}
[/code]

[code="java"]
//测试代码
public static void main(String[] args) {
double arg1 = 100;
double arg2 = 90;
double arg3 = 80;
ICalculator calculator = CalculatorFactory.getCalculator(CalculatorType.PlusCalculator);
System.out.println(calculator.calculate(arg1,arg2,arg3));
calculator = CalculatorFactory.getCalculator(CalculatorType.MinusCalculator);
System.out.println(calculator.calculate(arg1,arg2,arg3));
calculator = CalculatorFactory.getCalculator(CalculatorType.SquareCalculator);
System.out.println(calculator.calculate(arg1));

}

[/code]

这样写不好,应该用接口实现