zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    一个.java文件内只能写一个class吗
    Ubuntu下手动安装NextCloud
    基于 Ubuntu + nextCloud 搭建自己的私人网盘
    Ubuntu系统Apache 2部署SSL证书
    交叉验证与训练集、验证集、测试集
    [LeetCode] Restore IP Addresses
    [LeetCode] Decode Ways
    [LeetCode] Subsets II
    [LeetCode] Gray Code
    vector 的resize 和 reserve
  • 原文地址:https://www.cnblogs.com/dust2017/p/12791520.html
Copyright © 2011-2022 走看看