首页 > 其他分享 >练习题12

练习题12

时间:2022-10-26 13:44:34浏览次数:49  
标签:练习题 12 String show void package static public

1、给定一个导演Director 接口,内含唯- -的抽象方法makeMovie,且无参数、无返回值,使用lambda表达式在Test中完成调用。
在下面的代码中,请使用Lambda的省略格式调用invokeDirect 方法,打印输出“导演拍电影啦!”字样:

package com.xxx;

public interface Director {
    abstract void makeMovie();
}

package com.xxx;

public class Test {
    public static void main(String[] args) {
        invokeDirect(() -> {
            System.out.println("导演拍电影啦!");
        });
    }

    private static void invokeDirect(Director director) {
        director.makeMovie();
    }
}

2、给定一个计算器Calculator接口,内含抽象方法calc(减法),其功能是可以将两个数字进行相减,并返回差值。使用Lambda表达式在Test 中完成调用。
在下面的代码中,请分别使用Lambda的标准格式及省略格式调用invokeCalc 方法,完成130和120的相减计算:

package com.xxx;

public interface Calculator {
    abstract int calc(int a,int b);
}

package com.xxx;

public class Test {
    public static void main(String[] args) {
        int i = invokeCalc(130, 120, (int num1, int num2) -> {
            return num1 - num2;
        });

        System.out.println(i);
    }

    private static int invokeCalc(int a, int b, Calculator calculator) {
        return calculator.calc(a,b);
    }
}

3、定义出一一个函数式接口MyInterface,使用FunctionalInterface
注解标识函数式接口,接口中的唯一抽象方法 void show(String s);
1)请使用Lambda表达式实现这个函数式接口,调用show方法实现的功能为:将字符串转换成字节数组打印这个字节数组内容
2)请使用匿名内部类对象实现这个函数式接口,调用show方法,实现的功能为:将字符串转成整数然后+ 10输出结果
3)请定义一一个接口的实现类重写show方法,调用show方法,实现的功能为:获取出字符串中的每一个字符, 字符之间使用”--” 进行拼接

package com.xxx;

@FunctionalInterface
public interface MyInterface {
    void show(String s);
}

package com.xxx;

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        getShow("一个字符串",(String s) -> {
            byte[] bytes = s.getBytes();
            for (byte aByte : bytes) {
                System.out.println(aByte);
            }
        });
    }

    private static void getShow(String s, MyInterface myInterface){
        myInterface.show(s);

    }
}

package com.xxx;

import java.util.Arrays;

public class Test2 {
    public static void main(String[] args) {
        showInfo("abcde", (String str) -> {
            System.out.println(Arrays.toString(str.getBytes()));
        });

        showInfo("123", new MyInterface() {
            @Override
            public void show(String s) {
                System.out.println(Integer.parseInt(s) + 10);
            }
        });

        Impl impl = new Impl();
        impl.show("你好啊");

    }

    public static void showInfo(String s, MyInterface mi) {
        mi.show(s);
    }
}

package com.xxx;

public class Impl implements MyInterface {
    @Override
    public void show(String s) {
        char[] chars = s.toCharArray();

        StringBuilder sb = new StringBuilder();
        for (char aChar : chars) {
            sb.append(aChar).append("--");
        }

        System.out.println(sb.substring(0, sb.length() - 2));
    }
}

package com.xxx;

public class Test3 {
    public static void main(String[] args) {

        String str = "字符串的每一个字符";

        MyInterface mi = new Impl();

        mi.show(str);
    }
}

4、函数式接口
1)定义一个函数式接口CurrentTimePrinter,其中抽象方法void printCurrentTime(), 使用注解
@Functionallnterface
2)在测试类中 定义static void showLongTime(CurrentTimePrinter timePrinter),该方法的预期行为是使
用timePrinter打印系统当前毫秒值
3)测试 showLongTime(),通过lambda表达式完成需求

package com.xxx;

@FunctionalInterface
public interface CurrentTimePrinter {
    void printCurrentTime();
}

package com.xxx;

import java.util.Date;

public class Test {
    public static void main(String[] args) {
        showLongTime(() -> {
            //系统当前毫秒值
//            System.out.println(new Date().getTime());
            System.out.println(System.currentTimeMillis());
        });
    }

    private static void showLongTime(CurrentTimePrinter timePrinter) {
        timePrinter.printCurrentTime();
    }
}

标签:练习题,12,String,show,void,package,static,public
From: https://www.cnblogs.com/wyzel/p/16828066.html

相关文章

  • 3道经典的Python练习题【多测师】
      二、请按照以下3条规则计算1-99之和: 1.小于或等于10的(譬如:1+2+...+10),全部相加; 2.大于10的,如果十位数是偶数的,则计算他们之间的偶数之和(譬如:20+22+24+...+40+42..+......
  • JavaScript高级程序设计笔记12 BOM
    BOMBOM的核心——window对象窗口和弹窗location对象——页面信息navigator对象——浏览器信息history对象——浏览器历史记录BOM是使用JavaScript开发Web应用程序的......
  • 力扣122(java&python)-买卖股票的最佳时机 II(中等)
    题目:给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也......
  • Linux-CentOS7 安装VMware Workstation 12
    1、下载VMware衔接地址http://www.vmware.com/products/workstation/workstation-evaluation,下载Linux版本的VMware。我下载是:VMware-Workstation-Full-12.0.0-29......
  • 12_Vue事件总结
    事件总结事件修饰符连携准备工作html<!--定义一个容器--><divclass="app"><!--事件修饰符连携--><divclass="box"@click="toBaidu"><ahre......
  • CF1612E(概率,独立贡献计算+枚举)
    CF1612E(概率,独立贡献计算+枚举)Problem-1612E-Codeforces题目Monocarp是\(n\)个学生的导师。现在有很多条消息,Monocarp希望第\(i\)个学生阅读编号为\(m_i\)......
  • 1224. 交换瓶子
    https://www.acwing.com/problem/content/1226/首先是暴力做法,O(N^2),对于1e4勉强可以过#include<iostream>#include<algorithm>usingnamespacestd;constintN=......
  • P2597 [ZJOI2012]灾难
    #include<iostream>#include<vector>#include<cmath>#include<queue>#include<algorithm>#include<cstring>constintN=65534+1;usingnamespacestd;i......
  • Day11 练习题
    Day111、执行Python脚本的两种方式方法一:python31.py方法二:1.文件首行添加#!/usr/bin/envpython32.赋予执行权限chmodu+x1.py3.执行./......
  • P1282 多米诺骨牌
    题意:有一堆多米诺骨牌,骨牌被分为上下两部分,每部分写有1-6的一个数(真的不是骰子吗)。试颠倒一部分骨牌,使得所有骨牌 上部点数之和 和 下部点数之和 之差 最小。求......