上次去面试的试题,通过接口来实现多次计算两个数字之和,两个数字从键盘输入,然后使用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);
}我只挑出了一个错误,它把接口里面写了实现的方法了,其他的没找到!郁闷!

解决方案 »

  1.   

    int AddXY(int x,int y);
    看看你传进去的参数
    x = number1;
    y = number2;
      

  2.   

    c = (char)number1;  //number1是一个byte数组,不能转换为char
    x = number1; //x不是静态变量,不能在静态方法中使用,如果改为了静态,也是错,不能类型转换
    其他的也是
      

  3.   

    int x,y,z;
    没有声明为static,不能在static的函数main中直接使用。。
      

  4.   

    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; // c是char数组,不能转换
          System.out.println("number1 = " + c);
          x = number1; // main方法是静态方法,而x是非静态字段,错误
          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);
      

  5.   

    public class AddXY implements TestInterface // public class 必须定义在自己的文件中public interface TestInterface {   // public interface 必须定义在自己的文件中