首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一道面试题,挑出本程序的异常,并改正

2011-12-29 
求助:一道面试题,挑出本程序的错误,并改正!上次去面试的试题,通过接口来实现多次计算两个数字之和,两个数

求助:一道面试题,挑出本程序的错误,并改正!
上次去面试的试题,通过接口来实现多次计算两个数字之和,两个数字从键盘输入,然后使用javadoc产生html文档!
代码如下:
/**
  *找程序错误
  *错误1:
  *错误原因:
  *更正:
  *错误n:
  *错误原因:
  *更正:
*/
public   class   Test_Add   {
    static   int   ARRAY_MAX_VALUE   =   10;
    static   int   ADD_XY_COUNT   =   10000;
    int   x,y,z;
    public   static   void   main(String[]   args)   {
        for(int   i=0;i <ADD_XY_COUNT;i++){
            byte[]   number1   =   new   byte[ARRAY_MAX_VALUE];
            byte[]   number2   =   new   byte[ARRAY_MAX_VALUE];
            char[]   c   =   new   char[ARRAY_MAX_VALUE];
            /*   读第一个数   */
       
            System.in.read(number1);
            c   =   (char)number1;
            System.out.println( "number1   =   "   +   c);
            x   =   number1;
            System.out.println( "x   =   "   +   x);
            /*   读第二个数   */
            System.in.read(number2);
            c   =   (char)number2;
            System.out.println( "number2   =   "   +   c);
            y   =   number2;
            System.out.println( "y   =   "   +   y);
            /*   计算X+Y   */
            AddXY   addxy   =   new   AddXY();
            z   =   addxy.AddXY(x,y);
            System.out.println( "   x   +   y   =   "   +   z);
        }
    }
}

public   class   AddXY   implements   TestInterface   {
    int   z;
    public   int   AddXY(int   x,int   y){
        z   =   x   +   y;
        return   z;
    }
}

public   interface   TestInterface   {
    int   AddXY(int   x,int   y);
}


我只挑出了一个错误,它把接口里面写了实现的方法了,其他的没找到!郁闷!

[解决办法]
c = (char)number1;
c = (char)number2;

x = number1;
y = number2;
z = addxy.AddXY(x,y);
[解决办法]
IO操作会产生IOException,这里没有进行处理
[解决办法]
一个文件里不能有多个public的类和接口
[解决办法]
实现类的为什么把z写成字段,、
这个没有什么道理。


整个程序看起不,不像是JAVA。
更像C或者什么的。



如果用JAVA从键盘读入数字这么麻烦,
人都会死掉的。
[解决办法]
1.
number1是一个数组 c也是一个数组,只能对数组中的元素进行强制转换
不能对整个数组进行强制转换,强制转换只是对某个值(元素)来说的
c = (char)number1;这是不行的
2.一个.java文件里只能有一个public类,这里有三个了其中一个是接口
3.int x ,y都是非static的,main方法是static的,static的方法不能引用非static的
但非static的可以引用static的。
4.在System.in.read(number1);
这里可能抛出异常
楼主所说的:它把接口里面写了实现的方法了,是什么意思,这个接口并没有实现方法,只是声明方法啊,这是对的,AddXY这个类来实现了这个接口

这里还要稍微注意一点的就是:
AddXY addxy = new AddXY();
z = addxy.AddXY(x,y);
第一个AddXY()是构造方法
第二个AddXY(x,y)是实现了接口的方法

热点排行