• Java入门——day10


    一、今日学习

    1.枚举

    (1)定义:public enum 枚举名字{}

    1 public enum Color{
    2      RED,GREEN,BLACK,YELLOW;
    3     public static void main(String[] args) {
    4             Color c=Color.RED;
    5             System.out.println(c);
    6         }
    7 }

    (2)嵌套在switch中

    可以用switch打印枚举时代码可读性更强

     1 public enum Color{
     2      RED,GREEN,BLACK,YELLOW;
     3     public static void main(String[] args) {
     4             Color c=Color.RED;
     5             switch(c) {
     6             case RED:
     7                 System.out.println("红色");
     8                 break;
     9             case GREEN:
    10                 System.out.println("绿色");
    11                 break;
    12             case BLACK:
    13                 System.out.println("黑色");
    14                 break;
    15             case YELLOW:
    16                 System.out.println("黄色");
    17                 break;
    18             }
    19         }
    20 }

    (3)在枚举中定义构造方法

    在枚举中定义构造方法,必须使枚举中的变量形式与构造方法的形式保持一致

    注:枚举中的构造方法必须是private

     1 public enum Color{
     2      RED("红色"),GREEN("绿色"),BLACK("黑色"),YELLOW("黄色");
     3      //成员变量
     4     private String name;
     5     //构造方法
     6     private Color(String name) {
     7         this.name=name;
     8     }
     9     public String getName() {
    10         return name;
    11     }
    12     public void setName(String name) {
    13         this.name=name;
    14     }
    15     public static void main(String[] args) {
    16         Color c=Color.RED;
    17         System.out.println(c.name);
    18         }
    19     }

    (4)枚举中实现接口

    所有枚举继承自Java.lang.Enum类,枚举不能继承其他类,但可以实现接口

     1     public enum Color implements H{
     2          RED("红色"),GREEN("绿色"),BLACK("黑色"),YELLOW("黄色");
     3          //成员变量
     4         private String name;
     5         //构造方法
     6         private Color(String name) {
     7             this.name=name;
     8         }
     9         public String getName() {
    10             return name;
    11         }
    12         public void setName(String name) {
    13             this.name=name;
    14         }
    15         @Override
    16         public void get(){
    17             System.out.println("get...");
    18         }
    19         public static void main(String[] args) {
    20             Color c=Color.RED;
    21             c.get();
    22             }
    23         }
    24     interface H{
    25         void get();
    26     }

    (5)在枚举中定义抽象方法

     如果想在枚举中定义抽象方法,则枚举中的每个变量必须实现抽象方法

     1     public enum Color{
     2         RED{
     3             public void get() {
     4                 System.out.println("红色");
     5             }
     6         },GREEN{
     7             public void get() {
     8                     System.out.println("红色");
     9             }
    10         },BLACK{
    11             public void get() {
    12                 System.out.println("红色");
    13             }
    14         },YELLOW{
    15             public void get() {
    16                 System.out.println("红色");
    17             }
    18         };
    19         public abstract void get();
    20     }

    2.练习

    完成图书管理系统的一个读者借阅信息类

     1 public class service {
     2     private String bookname;
     3     private String writername;
     4     private String home;
     5     private String borrowtime;
     6     private String returntime;
     7     private String musttime;
     8     private int day;
     9     private int money;
    10     public void setBookName(String name) {
    11         this.bookname=name;
    12     }
    13     public void setWriterName(String name) {
    14         this.writername=name;
    15     }
    16     public void setHome(String name) {
    17         this.home=name;
    18     }
    19     public void setBorrowTime(String time) {
    20         this.borrowtime=time;
    21     }
    22     public void setReturnTime(String time) {
    23         this.returntime=time;
    24     }
    25     public void setMustTime(String time) {
    26         this.musttime=time;
    27     }
    28     public void setDay(int a) {
    29         this.day=a;
    30     }
    31     public void setMoney(int a) {
    32         this.money=a;
    33     }
    34     public String getBookName() {
    35         return bookname;
    36     }
    37     public String getWriterName() {
    38         return writername;
    39     }
    40     public String getHome() {
    41         return home;
    42     }
    43     public String getBorrowTime() {
    44         return borrowtime;
    45     }
    46     public String getReturnTime() {
    47         return returntime;
    48     }
    49     public String getMustTime() {
    50         return musttime;
    51     }
    52     public int getDay() {
    53         return day;
    54     }
    55     public int getMoney() {
    56         return money;
    57     }
    58     public static void main(String[] args) {
    59         service s1=new service();
    60         s1.setBookName("老人与海");
    61         s1.setWriterName("海明威");
    62         s1.setHome("上海译文出版社");
    63         s1.setBorrowTime("2020/5/30");
    64         s1.setReturnTime("2020/7/5");
    65         s1.setMustTime("2020/6/30");
    66         s1.setDay(5);
    67         s1.setMoney(150);
    68         service s2=new service();
    69         s2.setBookName("西游记");
    70         s2.setWriterName("吴承恩");
    71         s2.setHome("上海世界书局");
    72         s2.setBorrowTime("2020/6/25");
    73         s2.setReturnTime("2020/7/16");
    74         s2.setMustTime("2020/7/25");
    75         s2.setDay(0);
    76         s2.setMoney(0);
    77         service[] ps= {s1,s2};
    78         for(int i=0;i<ps.length;i++) {
    79             System.out.println("读者"+(i+1));
    80             System.out.println("书名:"+ps[i].getBookName());
    81             System.out.println("作者:"+ps[i].getWriterName());
    82             System.out.println("出版社:"+ps[i].getHome());
    83             System.out.println("借书时间:"+ps[i].getBorrowTime());
    84             System.out.println("还书时间:"+ps[i].getReturnTime());
    85             System.out.println("应还时间:"+ps[i].getMustTime());
    86             System.out.println("超期天数:"+ps[i].getDay());
    87             System.out.println("罚款金额:"+ps[i].getMoney());
    88             System.out.println();
    89         }
    90     }
    91 }

    运行结果:

    二、遇到问题

    1.在综合示例中,引入另外一个包内的类时报错

    2.@Override写上可以当作注释,方便阅读;可以验证下面的方法名是否是父类所有的,起到检查的作用

    三、明日学习

    1.复习第四章

    2.学习Java第五章知识

  • 相关阅读:
    drf项目部署到腾讯云
    ruby的DIR.pwd
    ruby+selenium-webdriver测试
    ruby
    ruby类对象和对象
    ruby的实例变量
    ruby在类中访问@,类外访问调用方法
    ruby中=>是什么意思
    ruby
    css content属性
  • 原文地址:https://www.cnblogs.com/znjy/p/13311249.html
Copyright © 2020-2023  润新知