免费招聘网站排行榜,网站建设销售兼职合同,搜索排名提升,网站建设与规划试卷目录
1. 枚举类的使用
1.1 枚举类的理解
1.2 举例
1.3 开发中的建议#xff1a;
1.4 Enum中的常用方法
1.5 熟悉Enum类中常用的方法
1.6 枚举类实现接口的操作
1.7 jdk5.0之前定义枚举类的方式 #xff08;了解即可#xff09;
1.8 jdk5.0之后定义枚举类的方式
1…目录
1. 枚举类的使用
1.1 枚举类的理解
1.2 举例
1.3 开发中的建议
1.4 Enum中的常用方法
1.5 熟悉Enum类中常用的方法
1.6 枚举类实现接口的操作
1.7 jdk5.0之前定义枚举类的方式 了解即可
1.8 jdk5.0之后定义枚举类的方式
1.8.1 jdk5.0前后的变化 1. 枚举类的使用
1.1 枚举类的理解 枚举类型本质上也是一种类只不过是这个类的对象是有限的、固定的几个不能让用户随意创建。
1.2 举例 - 星期 Monday(星期一)......Sunday(星期天) - 性别 Man(男)、Woman(女) - 月份 January(1月)......December(12月) - 季节 Spring(春节)......Winter(冬天) - 三原色 red(红色)、green(绿色)、blue(蓝色) - 支付方式 Cash现金、WeChatPay微信、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡) - 就职状态 Busy(忙碌)、Free(空闲)、Vocation(休假)、Dimission(离职) - 订单状态 Nonpayment未付款、Paid已付款、Fulfilled已配货、Delivered已发货、Checked已确认收货、Return退货、Exchange换货、Cancel取消 - 线程状态 创建、就绪、运行、阻塞、死亡 1.3 开发中的建议 开发中如果针对于某个类其实例是确定个数的。则推荐将此类声明为枚举类。 如果枚举类的实例只有一个则可以看做是单例的实现方式。 JDK5.0 之前如何自定义枚举类 了解--见代码1.7 jdk5.0之前定义枚举类的方式 了解即可 JDK5.0中使用enum定义枚举类 -- 见代码 1.8 jdk5.0之后定义枚举类的方式
1.4 Enum中的常用方法 使用enum关键字定义的枚举类默认其父类是java.lang.Enum类 使用enum关键字定义的枚举类不要再显示的定义其父类。否则报错。
1.5 熟悉Enum类中常用的方法 String toString(): 默认返回的是常量名对象名可以继续手动重写该方法 (关注) static 枚举类型[ ] values():返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值是一个静态方法 (关注) static 枚举类型 valueOf(String name)可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是会有运行时异常IllegalArgumentException。 String name():得到当前枚举常量的名称。建议优先使用toString()。 int ordinal():返回当前枚举常量的次序号默认从0开始1.6 枚举类实现接口的操作 情况1枚举类实现接口在枚举类中重写接口中的抽象方法。当通过不同的枚举类对象调用此方法时执行的是同一个方法。 情况2让枚举类的每一个对象重写接口中的抽象方法。当通过不同的枚举类对象调用此方法时执行的是不同的实现的方法。 //1. 必须在枚举类的开头声明多个对象。对象之间使用,隔开SPRING(春天,春暖花开){public void show(){System.out.println(春天在哪里);}},SUMMER(夏天,夏日炎炎){public void show(){System.out.println(宁静的夏天);}},AUTUMN(秋天,秋高气爽){public void show(){System.out.println(秋意浓);}},WINTER(冬天,白雪皑皑){public void show(){System.out.println(大约在冬季);}}; 1.7 jdk5.0之前定义枚举类的方式 了解即可
public class SeasonTest {public static void main(String[] args) {// Season.SPRING null;System.out.println(Season.SPRING);System.out.println(Season.SUMMER.getSeasonName());System.out.println(Season.SUMMER.getSeasonDesc());}
}//jdk5.0之前定义枚举类的方式
class Season{//2. 声明当前类的对象的实例变量,使用private final修饰private final String seasonName;//季节的名称private final String seasonDesc;//季节的描述//1. 私有化类的构造器private Season(String seasonName,String seasonDesc){this.seasonName seasonName;this.seasonDesc seasonDesc;}//3. 提供实例变量的get方法public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4. 创建当前类的实例需要使用public static final修饰public static final Season SPRING new Season(春天,春暖花开);public static final Season SUMMER new Season(夏天,夏日炎炎);public static final Season AUTUMN new Season(秋天,秋高气爽);public static final Season WINTER new Season(冬天,白雪皑皑);Overridepublic String toString() {return Season{ seasonName seasonName \ , seasonDesc seasonDesc \ };}
}1.8 jdk5.0之后定义枚举类的方式
1.8.1 jdk5.0前后的变化
类似于接口Interface默认省略 public abstract 但枚举enum的对象必须省略 public static final 及 new 类名 // JDK5.0 前 public static final Season SPRING new Season(春天,春暖花开);public static final Season SUMMER new Season(夏天,夏日炎炎);public static final Season AUTUMN new Season(秋天,秋高气爽);public static final Season WINTER new Season(冬天,白雪皑皑);// JDK5.0 后//1. 必须在枚举类的开头声明多个对象。对象之间使用,隔开SPRING(春天,春暖花开),SUMMER(夏天,夏日炎炎),AUTUMN(秋天,秋高气爽),WINTER(冬天,白雪皑皑);public class SeasonTest1 {public static void main(String[] args) {// System.out.println(Season1.SPRING.getClass());// System.out.println(Season1.SPRING.getClass().getSuperclass());// System.out.println(Season1.SPRING.getClass().getSuperclass().getSuperclass());//测试方法//1. toString()System.out.println(Season1.SPRING);System.out.println(Season1.AUTUMN);//2. name()System.out.println(Season1.SPRING.name());//3. vlaues()Season1[] values Season1.values();for (int i 0; i values.length; i) {System.out.println(values[i]);}//4. valueOf(String objName):返回当前枚举类中名称为objName的枚举类对象。//如果枚举类中不存在objName名称的对象则报错。String objName WINTER;
// objName WINTER1;Season1 season1 Season1.valueOf(objName);System.out.println(season1);//5.ordinal()System.out.println(Season1.AUTUMN.ordinal());//通过枚举类的对象调用重写接口中的方法Season1.SUMMER.show();}
}interface Info{void show();
}//jdk5.0中使用enum关键字定义枚举类
enum Season1 implements Info{//1. 必须在枚举类的开头声明多个对象。对象之间使用,隔开SPRING(春天,春暖花开),SUMMER(夏天,夏日炎炎),AUTUMN(秋天,秋高气爽),WINTER(冬天,白雪皑皑);//2. 声明当前类的对象的实例变量,使用private final修饰private final String seasonName;//季节的名称private final String seasonDesc;//季节的描述//3. 私有化类的构造器private Season1(String seasonName,String seasonDesc){this.seasonName seasonName;this.seasonDesc seasonDesc;}//4. 提供实例变量的get方法public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}Overridepublic String toString() {return Season1{ seasonName seasonName \ , seasonDesc seasonDesc \ };}Overridepublic void show() {System.out.println(这是一个季节);}
}