Day14 JavaObject02-2作业

1.
a. 定义一个接口Compute,用来完成计算器的功能,比如最简单的加减乘除功能

interface Compute {
  double compute(double a, double b)
}

b. 定义一个ShowCompute类,里面定义一个工具方法compute(Compute com,double a, double b)
该方法可以执行,两个double类型数据的加减乘除
(也就是需要定义不同的Compute接口的子类,实现具体的加减乘除功能,当执行该方法时,
传递不同的子类对象,就可以完成不同的计算)

编写一个测试类,
通过调用ShowCompute类的compute(Compute com,double a, double b)
方法来完成加减乘除功能

2. 根据注释填写(1), (2),(3)处的代码

 1 public class Test {
 2     public static void main(String[] args){
 3            // 初始化bean1
 4            (1)
 5            bean1.i++;
 6            // 初始化bean2
 7            (2)
 8            bean2.j++;
 9            //初始化bean3
10            (3)
11            bean3.k++;
12         }
13 
14     class Bean1 {
15         public int i = 0;
16     }
17 
18     static class Bean2 {
19         public int j = 0;
20     }
21 }
22 
23 class Bean {
24     class Bean3 {
25         public int k = 0;
26     }
27 }

 

 

参考答案:

1.

 1 public interface Compute {
 2     double compute(double a, double b);
 3 }
 4 
 5 class ShowCompute {
 6     /*
 7      * 定义工具方法,事项,对两个操作数a和b的计算(加减乘除) 至于,具体对a和b执行哪种计算,有方法接收的,具体的Compute接口子类对象决定
 8      */
 9     public static double calculate(Compute com, double a, double b) {
10         return com.compute(a, b);
11     }
12 }
13 
14 public class Work1 {
15 
16     public static void main(String[] args) {
17 
18         double a = 10;
19         double b = 2.5;
20 
21         // 所有的计算结果,都是通过ShowCompute类的calculate方法完成的
22         // 不同的Compute匿名内部类对象,决定了不同的计算方式(比如,加减乘除)
23 
24         // 执行加法 创建了执行加法操作的Compute接口匿名内部类对象
25         double add = ShowCompute.calculate(new Compute() {
26             @Override
27             public double compute(double a, double b) {
28                 return a + b;
29             }
30         }, a, b);
31 
32         // 执行减法 创建了执行减法操作的Compute接口匿名内部类对象
33         double minus = ShowCompute.calculate(new Compute() {
34             @Override
35             public double compute(double a, double b) {
36                 return a - b;
37             }
38         }, a, b);
39 
40         // 执行乘法 创建了执行乘法操作的Compute接口匿名内部类对象
41         double multi = ShowCompute.calculate(new Compute() {
42             @Override
43             public double compute(double a, double b) {
44                 return a * b;
45             }
46         }, a, b);
47 
48         // 执行除法 创建了执行除法操作的Compute接口匿名内部类对象
49         double divide = ShowCompute.calculate(new Compute() {
50             @Override
51             public double compute(double a, double b) {
52                 return a / b;
53             }
54         }, a, b);
55     }
56 }

 

2.

 

posted @ 2020-04-28 02:26  dust--  阅读(394)  评论(1编辑  收藏  举报