A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大家都来检测一下你的学习结果吧,

-测试题.rar

13.83 KB, 阅读权限: 10, 下载次数: 41

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

4 个回复

倒序浏览

最后一道关于计算器的完善, 完善除数为0 的异常



//使用面向对象设计计算器(使用工厂模式)

class Test1
{
        public static void main(String[] args){
                int a=10;
                int b=0;
                char c='/';

                Operation op=OperationFactory.getInstance(c);
                try{
                        int result=op.oper(a,b);               
                        System.out.println("结果:"+a+c+b+"="+result);
                }catch(Exception e){
                        System.out.println("除数为0");
                }
        }
}

//运算的接口
interface Operation
{  //计算的方法
        int oper(int a,int b) throws Exception;
}

//工厂  根据符号得到一个Operation对象
class OperationFactory
{
        public static Operation getInstance(char c){
                Operation op=null;
                switch(c){
                        case '+'p=new Add();break;
                        case '-'p=new Sub();break;
                        case '*'p=new Mul();break;
                        case '/'p=new Div();break;
                }
                return op;
        }
}

class Add implements Operation
{
        public int oper(int a,int b){
                return a+b;
        }
}
class Sub implements Operation
{
        public int oper(int a,int b){
                return a-b;
        }
}
class Mul implements Operation
{
        public int oper(int a,int b){
                return a*b;
        }
}
class Div implements Operation
{
        public int oper(int a,int b) throws Exception{
               
                if(b==0){
                        throw new Exception();
                }

                int result=0;
               
                result=a/b;
               
                return result;
        }
}
回复 使用道具 举报
谢了 下了,看看哈
回复 使用道具 举报
{:soso_e129:}试试
回复 使用道具 举报
谢谢谢谢楼主分享~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马