上次去面试的试题,通过接口来实现多次计算两个数字之和,两个数字从键盘输入,然后使用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:
*错误原因:
*更正:
*错误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);
}我只挑出了一个错误,它把接口里面写了实现的方法了,其他的没找到!郁闷!
看看你传进去的参数
x = number1;
y = number2;
x = number1; //x不是静态变量,不能在静态方法中使用,如果改为了静态,也是错,不能类型转换
其他的也是
没有声明为static,不能在static的函数main中直接使用。。
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);