• 2017.12.1T19_B2_5zuoye


    package com.whxiong.work05;

    import java.util.Scanner;

    import com.whxiong.work05_2.Friends;
    import com.whxiong.work05_2.Master;

    /**
     * 第五章课后习题测试类
     * @param args
     */
    public class Demo {
     public static void main(String[] args) {
      Scanner input = new Scanner(System.in);

      System.out.println("课后习题第五题");
      System.out.println("************************************");
      /**
       * 实例化ChoosePrinter
       */
      ChoosePrinter printer01 = new ChoosePrinter();
      /**
       * 选择打印机类型
       */
      System.out.println("请选择您要使用的打印机:1.针式打印机 2.喷墨打印机 3.激光打印机");
      int typeid = input.nextInt();
      Printer printer = printer01.gettype(typeid);
      if (printer != null) {
       printer01.print(printer);
      } else {
       System.out.println("对不起,没有该类型打印机!");
      }
      
      System.out.println();
      System.out.println("课后习题第六题");
      System.out.println("************************************");
      Master master=new Master("牛犇");
      System.out.println("请选择牛犇朋友的国家:1.中国  2.美国");
      int chooseCountry=input.nextInt();
      Friends friends=master.Treat(chooseCountry);
      if(friends!=null){
       System.out.println("谢谢"+master.getName()+"的热情招待!");
      }else{
       System.out.println("不好意思,牛犇不认识您!");
      }

    ********************************************************

    package com.whxiong.work05;
    /**
     * Frinends 牛犇的朋友类
     * @author whx
     */
    public abstract class Friends {
     
     private String country; //国家
     private String name; //名字
     private String eat;  //食物
     private String play; //运动
     /**
      * 带参构造
      * @param country
      * @param name
      * @param eat
      * @param play
      */
     public Friends(String country,String name, String eat, String play) {
      super();
      this.country=country;
      this.name = name;
      this.eat = eat;
      this.play = play;
     }
     public String getCountry() {
      return country;
     }
     public void setCountry(String country) {
      this.country = country;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     public String getEat() {
      return eat;
     }
     public void setEat(String eat) {
      this.eat = eat;
     }
     public String getPlay() {
      return play;
     }
     public void setPlay(String play) {
      this.play = play;
     }
     /**
      * 定义抽象类的Eat方法
      */
     public abstract void Eat();
     /**
      * 定义抽象类的Play方法
      */
     public abstract void Play();

    }
    /**
     * America 美国朋友 子类
     * @author whx
     */
     class America extends Friends {
     /**
      * 调用父类中的带参构造
      * @param country
      * @param name
      * @param eat
      * @param play
      */
     public America(String country,String name, String eat, String play) {
      super(country,name, eat, play);
     }

     @Override
     public void Eat() {
      {
       System.out.println("我叫"+this.getName()+",我是"+this.getCountry()
         +"人"+" 我喜欢吃"+this.getEat());
      }
      
     }

     @Override
     public void Play() {
      System.out.println(" 我喜欢的运动是"+this.getPlay());
     }
    }
     /**
      * China 中国朋友 子类
      * @author whx
      */
      class China extends Friends{
      /**
       * 调用父类中的带参构造
       * @param country
       * @param name
       * @param eat
       * @param play
       */
      public China(String country,String name, String eat, String play) {
       super(country,name, eat, play);
      }

      @Override
      public void Eat() {
       
        System.out.println("我叫"+this.getName()+",我是"
       +this.getCountry()+"人"+" 我喜欢吃"+this.getEat());
       
       
      }

      @Override
      public void Play() {
       System.out.println(" 我喜欢的运动是"+this.getPlay());
      }
     }

      /**
       * Master 主人牛犇 类
       * @author whx
       */
       class Master {
       private String name;//主人姓名
       /**
        * 带参构造
        * @param name
        */
       public Master(String name){
        this.name=name;
       }
       
       public String getName() {
        return name;
       }

       public void setName(String name) {
        this.name = name;
       }

       /**
        * @param chooseCountry选择国家
        * @return
        */
       public Friends Treat(int chooseCountry){
        Friends friends=null;
        if(chooseCountry==1){
         friends=new China("中国","王小强", "四川菜", "太极拳");
         friends.Eat();
         friends.Play();
        }
        if(chooseCountry==2){
         friends=new America("美国","约翰", "比萨", "橄榄球");
         friends.Eat();
         friends.Play();
        }
        return friends;
       }*************************************************

    package com.whxiong.work05;
    /**
     * Printer 创建打印机类
     * abstract 抽象不可被实例化
     * @author whx
     */
    public abstract class Printer {
     //打印机类型
     private String type;
     /**
      * 带参构造
      * @param type
      */
     public Printer(String type){
      this.type=type;
     }
     
     public String getType() {
      return type;
     }

     public void setType(String type) {
      this.type = type;
     }

     /**
      * 定义抽象方法print
      */
     public abstract void print();
    }
     /**
      * DotMatrixPrinter 针式打印机 子类
      * @author whx
      */
     class DotMatrixPrinter extends Printer {
     
      public DotMatrixPrinter(String type) {
       super(type);
      }
     
      @Override
      public void print() {
       System.out.println("***您选择的打印机是" + this.getType() + "***");
      }
     }
     
     /**
      * InkpetPrinter 喷墨打印机 子类
      *
      * @author whx
      */
     class InkpetPrinter extends Printer {
     
      public InkpetPrinter(String type) {
       super(type);
      }
     
      @Override
      public void print() {
       System.out.println("***您选择的打印机是" + this.getType() + "***");
      }
     }
     
     /**
      * LaserPrinter 激光打印机 子类
      * @author whx
      */
     class LaserPrinter extends Printer {
     
      public LaserPrinter(String type) {
       super(type);
      }
     
      @Override
      public void print() {
       System.out.println("***您选择的打印机是" + this.getType() + "***");
      }
     
     }
     /**
      * ChoosePrinter 选择打印机
      * @author whx
      */
      class ChoosePrinter {
      /**
       * 选择打印机类型
       * @param id打印机编号
       */
      public Printer gettype(int typeid) {
       Printer printer = null;
       if (typeid == 1) {
        printer = new DotMatrixPrinter("针式打印机");
       }
       if (typeid == 2) {
        printer = new DotMatrixPrinter("喷墨打印机");
       }
       if (typeid == 3) {
        printer = new DotMatrixPrinter("激光打印机");
       }
       return printer;
      }

      /**
       * 打印机开始打印
       * @param printer
       */
      public void print(Printer printer) {
       /**
        * 判断对象printer是InkpetPrinter类型
        */
       if (printer instanceof InkpetPrinter) {
        /**
         * 由于printer是父类对象,强制转换
         */
        InkpetPrinter ink = (InkpetPrinter) printer;
        ink.print();
       }
       /**
        * 判断对象printer是LaserPrinter类型
        */
       if (printer instanceof LaserPrinter) {
        /**
         * 由于printer是父类对象,强制转换
         */
        LaserPrinter laser = (LaserPrinter) printer;
        laser.print();
       }
       /**
        * 判断对象printer是DotMatrixPrinter类型
        */
       if (printer instanceof DotMatrixPrinter) {
        /**
         * 由于printer是父类对象,强制转换
         */
        DotMatrixPrinter dot = (DotMatrixPrinter) printer;
        dot.print();
       }
      }

  • 相关阅读:
    tableau用户留存分析
    tableau用户分类
    业务
    数据分析的思维技巧-二
    数据分析的思维技巧
    业务化思维
    公式化思维
    结构化思维
    Shortest Unsorted Continuous Subarray
    Longest Harmonious Subsequence
  • 原文地址:https://www.cnblogs.com/xiaoxiao1016/p/8021641.html
Copyright © 2020-2023  润新知