zoukankan      html  css  js  c++  java
  • 利用接口实现打印机案例

    模拟打印机案例解析

           墨盒:彩色、黑白

           纸张类型:A4、B5

           墨盒和纸张都不是打印机厂商提供的

           打印机的打印功能需要使用兼容市场上的墨盒和纸张

           测试(把纸张和墨盒定义为接口,让以后的实现类去实现它)

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:
    * @author: Mr.Lin
    * @create: 2019年7月21日
    **/
    public interface Paper {
    /*
    * 纸张
    */
    public String paper();
    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:A4纸张实现类
    * @author: Mr.Lin
    * @create: 2019年7月21日
    **/
    public class A4Paper implements Paper{
    @Override
    public String paper() {
    return "A4";
    }

    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:B5纸张实现类
    * @author: Mr.Lin
    * @create: 2019年7月22日
    **/
    public class B5Paoer implements Paper{
    @Override
    public String paper() {
    return "B5";
    }


    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:墨盒接口
    * @author: Mr.Lin
    * @create: 2019年7月22日
    **/
    public interface Ink {
    /**
    * 墨盒
    */
    public String ink();
    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:彩色墨盒实现类
    * @author: Mr.Lin
    * @create: 2019年7月22日
    **/
    public class ColorInk implements Ink{

    @Override
    public String ink() {
    return "彩色";
    }

    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:黑白墨盒实现类
    * @author: Mr.Lin
    * @create: 2019年7月22日
    **/
    public class BlackInk implements Ink{
    @Override
    public String ink() {
    return "黑白";
    }
    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:打印类
    * @author: Mr.Lin
    * @create: 2019年7月22日
    **/
    public class Printer {
    private String ink;
    private String paper;

    public void setPaper(String paper) {
    this.paper = paper;
    }

    public String getInk() {
    return ink;
    }

    public String getPaper() {
    return paper;
    }

    public void setInk(String ink) {
    this.ink = ink;
    }

    public void dayin(){
    System.out.println("用"+this.getInk()+"打印机打印"+this.getPaper()+"纸张");
    }
    }

    package com.oned8z;
    /**
    * @program: com.oned8z
    * @description:
    * @author: Mr.Lin
    * @create: 2019年7月22日
    **/
    public class PrinterTest {
    public static void main(String[] args) {
    A4Paper a4Paper = new A4Paper();
    ColorInk colorInk = new ColorInk();
    Printer printer = new Printer();

    printer.setInk(colorInk.ink());
    printer.setPaper(a4Paper.paper());
    printer.dayin();
    }

    }

  • 相关阅读:
    OCP-1Z0-051-V9.02-26题
    谨慎使用A2W等字符转换宏
    MySQL 递归查询 当前节点及子节点
    std count_if用法
    OCP-1Z0-053-V12.02-660题
    OCP-1Z0-053-V12.02-667题
    OCP-1Z0-053-V12.02-676题
    OCP-1Z0-051-V9.02-159题
    手工不完全恢复(非归档模式下,日志被覆盖)
    手工完全恢复(非归档模式下,日志没有被覆盖)
  • 原文地址:https://www.cnblogs.com/lpbk/p/11223562.html
Copyright © 2011-2022 走看看