创建一个类,类名Function,具有一个方法evaluate,参数为一个int型变量,返回值为int:方法实现为直接返回传入的参数
创建一个类,类名Half,继承Function且重写evaluate方法:将传入的参数除以2返回
创建一个类,类名TwoTimes,继承Function且重写evaluate方法:将传入的参数乘以2返回
再新建一个类,在类中实现一个方法,该方法的参数列表为一个int型数组和一个Function对象,功能为利用Function对象的evaluate操作对数组的每个元素进行改变,最后返回改变后的int型数组
利用上述方法,以及Half和TwoTimes类,对一个数组的所有元素进行除以2或者乘以2的操作
java接口的使用
答案:2 悬赏:0 手机版
解决时间 2021-04-04 01:47
- 提问者网友:却不属于对方
- 2021-04-03 21:48
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-04-03 22:23
Java程序:
class Exam {
public static void main(String args[]) {
TestFunction test = new TestFunction();
Function f;
int[] arr = {1,2,3,4,5,6,7,8,9};
int i;
int[] ret;
System.out.println("处理前:");
for(i=0; i
System.out.print(arr[i] + " ");
}
f = new Half();
ret = test.func(arr, f);
System.out.println("\n折半处理后:");
for(i=0; i
System.out.print(ret[i] + " ");
}
f = new TwoTimes();
ret = test.func(arr, f);
System.out.println("\n翻倍处理后:");
for(i=0; i
System.out.print(ret[i] + " ");
}
}
}
interface Function {
int evaluate(int n);
}
class Half implements Function {
public int evaluate(int n) {
return n / 2;
}
}
class TwoTimes implements Function {
public int evaluate(int n) {
return 2 * n;
}
}
class TestFunction {
public int[] func(int[] arr, Function f) {
int ret[] = new int[arr.length];
for(int i=0; i
ret[i] = f.evaluate(arr[i]);
}
return ret;
}
}
运行测试:
处理前:
1 2 3 4 5 6 7 8 9
折半处理后:
0 1 1 2 2 3 3 4 4
翻倍处理后:
2 4 6 8 10 12 14 16 18
class Exam {
public static void main(String args[]) {
TestFunction test = new TestFunction();
Function f;
int[] arr = {1,2,3,4,5,6,7,8,9};
int i;
int[] ret;
System.out.println("处理前:");
for(i=0; i
}
f = new Half();
ret = test.func(arr, f);
System.out.println("\n折半处理后:");
for(i=0; i
}
f = new TwoTimes();
ret = test.func(arr, f);
System.out.println("\n翻倍处理后:");
for(i=0; i
}
}
}
interface Function {
int evaluate(int n);
}
class Half implements Function {
public int evaluate(int n) {
return n / 2;
}
}
class TwoTimes implements Function {
public int evaluate(int n) {
return 2 * n;
}
}
class TestFunction {
public int[] func(int[] arr, Function f) {
int ret[] = new int[arr.length];
for(int i=0; i
}
return ret;
}
}
运行测试:
处理前:
1 2 3 4 5 6 7 8 9
折半处理后:
0 1 1 2 2 3 3 4 4
翻倍处理后:
2 4 6 8 10 12 14 16 18
全部回答
- 1楼网友:话散在刀尖上
- 2021-04-03 23:38
这个和接口没有关系吧。。就是子类继承父类,重写父类方法
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯