日期:2014-05-20  浏览次数:20644 次

老师出了一道题,写出来了但是觉得写的不好希望和大家交流一下
老师出了一道题,写一个方法要求可以接受int,float,double,String型进行加法计算.不许用重载用OOP的思想写,我到是写出来了就是感觉写的不好:下面是我的原码,谁有更好的想法:
声明一个接口:
public   interface   MyInterface   {
public   Object   add(Object   shuzi1,Object   shuzi2);


}

写一个类:
public   class   IterfaceDemo   implements   MyInterface   {

public   Object   add(Object   shuzi1,   Object   shuzi2)   {
//   TODO   自动生成方法存根

if   (shuzi1.getClass().getCanonicalName()   ==   "java.lang.Integer ")
{

return   (Integer.valueOf(shuzi1.toString())   +   Integer.valueOf(shuzi2.toString()));
}
else   if   (shuzi1.getClass().getCanonicalName()   ==   "java.lang.Float ")
{
return   (Float.valueOf(shuzi1.toString())   +   Float.valueOf(shuzi2.toString()));
}
else   if   (shuzi1.getClass().getCanonicalName()   ==   "java.lang.Double ")
{
return   (Double.valueOf(shuzi1.toString())   +   Double.valueOf(shuzi2.toString()));
}
else   if   (shuzi1.getClass().getCanonicalName()   ==   "java.lang.String ")
{
return   shuzi1.toString()   +   shuzi2.toString();
}
System.out.println(shuzi1.getClass().getCanonicalName());
return   0;
}

}

写一个测试类

public   class   InterfaceTest   {

/**
  *   @param   args
  */
public   static   void   main(String[]   args)   {
//   TODO   自动生成方法存根
//利用类库
IterfaceDemo   e   =   new   IterfaceDemo();
IterfaceDemo   d   =   new   IterfaceDemo();  
IterfaceDemo   f   =   new   IterfaceDemo();
System.out.println( "利用类库 ");
System.out.println(e.add(23,   34));
System.out.println(d.add(23.3,   3.3));
System.out.println(f.add( "ff ",   "gg "));
      }
}
功能是实现了但是觉得完全是面向过程和用类库写出来得,不知道大家有什么更好的方法,互相交流一下.




------解决方案--------------------
总觉得老师要的结果不是你给出的答案
------解决方案--------------------
.............
就是不允许重载。感觉没有特别的撒
你不用类库,怎么可能可能实现方法,JDK就是类库,难道你不用JDK?