当前位置: 首页 > news >正文

网站开发获客渠道住房公积金网上服务平台

网站开发获客渠道,住房公积金网上服务平台,wordpress 多标签筛选,旅游类网站建设教案枚举(enum) 一、基本介绍 引出关键字:enum,全称为enumerate 枚举是一组常量集合 理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象 二、使用场景 当一个类的属性有限定条件时(例如一个星期只能有七天&…

枚举(enum)

一、基本介绍

  • 引出关键字:enum,全称为enumerate

  • 枚举是一组常量集合

  • 理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象

二、使用场景

当一个类的属性有限定条件时(例如一个星期只能有七天),可以使用枚举类(特点:只读不改

三、实现枚举的方式

1. 自定义类实现枚举

特点如下(构建方法四步走)

补充内容

2. 使用enum关键字实现枚举

四、追寻 enum 类的底层源码(使用javap反编译)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五、enum 类的成员方法

方法名详细描述
valueOf传递枚举类型的 Class 对象和枚举常量名称给静态方法 valueOf,会得到与参数匹配的枚举常量。
toString得到当前枚举常量的名称。你可以通过重写这个方法来使得到的结果更易读。
equals在枚举类型中可以直接使用 == 来比较两个枚举常量是否相等。Enum 提供的这个 equals() 方法,也是直接使用 == 实现的。它的存在是为了在 Set、List 和 Map 中使用。注意,equals() 是不可变的。
hashCodeEnum 实现了 hashCode() 来和 equals() 保持一致。它也是不可变的。
getDeclaringClass得到枚举常量所属枚举类型的 Class 对象。可以用它来判断两个枚举常量是否属于同一个枚举类型。
name得到当前枚举常量的名称。建议优先使用 toString()。
ordinal得到当前枚举常量的次序。
compareTo枚举类型实现了 Comparable 接口,这样可以比较两个枚举常量的大小(按照声明的顺序排列)
clone枚举类型不能被 Clone。为了防止子类实现克隆方法,Enum 实现了一个仅抛出 CloneNotSupportedException 异常的不可变 Clone()。

常用方法的说明

请添加图片描述

六、enum实现接口

通过类名调用在类中创建的对象实例,即eunm 类名 . 创建对象的对象名(这就表示 enum 的一个实例对象),通过对象调用方法


案例:设置季节类

分析:季节只有四季

一、自定义类实现枚举

代码示例

package enum_;public class main {public static void main(String[] args) {// 直接访问类中创建的对象,用过 toString 方法重写后会输出对象的信息System.out.println(season.SPRRING);System.out.println(season.SUMMER);System.out.println(season.AUTUMN);System.out.println(season.WINTER);}
}class season{// 对象属性私有化private String name;private String info;// 创建实例对象提供给其他类进行读取public final static season SPRRING = new season("春天","温暖");public final static season SUMMER = new season("夏天","炎热");public final static season AUTUMN = new season("秋天","凉爽");public final static season WINTER = new season("冬天","寒冷");// 构造器私有化private season(String name, String info) {this.name = name;this.info = info;}public String getName() {return name;}public String getInfo() {return info;}// 重写 toString 方法,输出对象的信息@Overridepublic String toString() {return "season{" +"name='" + name + '\'' +", info='" + info + '\'' +'}';}
}// 输出结果
season{name='春天', info='温暖'}
season{name='夏天', info='炎热'}
season{name='秋天', info='凉爽'}
season{name='冬天', info='寒冷'}

二、使用enum关键字实现枚举

代码示例

package enum_;public class main {public static void main(String[] args) {// 直接访问类中创建的对象,用过 toString 方法重写后会输出对象的信息System.out.println(season.SPRING);System.out.println(season.SUMMER);System.out.println(season.AUTUMN);System.out.println(season.WINTER);System.out.println(season.season);}}enum season{// 枚举对象必须位于枚举类的开头SPRING("春天","温暖"),SUMMER("夏天","炎热"),AUTUMN("秋天","凉爽"), WINTER("冬天","寒冷"),season;/*使用枚举对象代替了public final static season SPRRING = new season("春天","温暖");public final static season SUMMER = new season("夏天","炎热");public final static season AUTUMN = new season("秋天","凉爽");public final static season WINTER = new season("冬天","寒冷");*/// 对象属性私有化private String name;private String info;// 构造器私有化private season(){}private season(String name, String info) {this.name = name;this.info = info;}public String getName() {return name;}public String getInfo() {return info;}// enum类在底层继承了父类,在子类中不重写该方法// 调用父类的方法,输出的是对象的名称
}

注意:子类不重写 toString 方法,enum类在底层继承了父类,调用父类的方法,输出的是对象的名称

三、enum成员方法

请添加图片描述

代码示例

package enum_;public class main {public static void main(String[] args) {season spring = season.SPRING;// name 方法System.out.println("1. 调用 name() 方法:" + spring.name());System.out.println("spring.name() = " + spring.name());System.out.println();// ordinal 方法:从 0 开始编号System.out.println("2. 调用 ordinal() 方法");System.out.println("spring.ordinal() = "+ spring.ordinal());System.out.println();// values 方法 :返回的是数组,存储 enum类 中的所有常量System.out.println("3. 调用 values() 方法,遍历数组,返回所有常量");season[] seasons = season.values();/*使用增强for循环for(变量类型 变量名:数组或集合)*/for(season s:seasons){System.out.println(s);}System.out.println();// valueOf 方法:判断常量是否存在于enum类中,存在则返回常量名,否则报异常System.out.println("4. 调用 valueof() 方法");System.out.println("season.valueOf(\"AUTUMN\") = " + season.valueOf("AUTUMN"));
//        System.out.println("season.valueOf(\"hi\") = " + season.valueOf("hi")); // 会报异常System.out.println();// compareTo() 方法:计算两个枚举常量位置序号的差值System.out.println("5. 调用 compareTo() 方法");System.out.println("season.WINTER.compareTo(season.SPRING) = " + season.WINTER.compareTo(season.SPRING));System.out.println();}}enum season{// 枚举对象必须位于枚举类的开头SPRING("春天","温暖"),SUMMER("夏天","炎热"),AUTUMN("秋天","凉爽"), WINTER("冬天","寒冷");// 对象属性私有化private String name;private String info;// 构造器私有化private season(){}private season(String name, String info) {this.name = name;this.info = info;}public String getName() {return name;}public String getInfo() {return info;}// enum类在底层继承了父类,在子类中不重写该方法// 调用父类的方法,输出的是对象的名称/*enum类的 toString 方法public String toString() {return name;}*/
}// 输出结果
1. 调用 name() 方法:SPRING
spring.name() = SPRING2. 调用 ordinal() 方法
spring.ordinal() = 03. 调用 values() 方法,遍历数组,返回所有常量
SPRING
SUMMER
AUTUMN
WINTER4. 调用 valueof() 方法
season.valueOf("AUTUMN") = AUTUMN5. 调用 compareTo() 方法
season.WINTER.compareTo(season.SPRING) = 3

四、enum 实现接口

代码示例

package enum_;public class main {public static void main(String[] args) {// season.INTERFACE_METHIOD 是 enum 类的一个实例对象,通过对象调用方法season.INTERFACE_METHIOD.hi();}}interface A{public void hi();
}enum season implements A{// 枚举对象必须位于枚举类的开头SPRING("春天","温暖"),SUMMER("夏天","炎热"),AUTUMN("秋天","凉爽"), WINTER("冬天","寒冷"),INTERFACE_METHIOD;// 对象属性私有化private String name;private String info;// 构造器私有化private season(){}private season(String name, String info) {this.name = name;this.info = info;}public String getName() {return name;}public String getInfo() {return info;}public void hi(){System.out.println("在 enum 类中实现了接口的 hi() 方法");}
}
http://www.dtcms.com/a/450928.html

相关文章:

  • 上海招聘信息最新招聘百度关键词优化软件排名
  • 电子商务网站设计与网络营销实验合肥优化
  • 02系统入门:监控系统的目标与核心问题
  • 一个网站绑定多个域名 卖域名广州公认的第一富人区
  • pc网站转换成微网站sharepoint网页制作教程
  • 专业网站建设哪里找企业网站制作步骤
  • 做移动网站给网站网站做设计
  • 长春免费做网站怎么查那家网络公司做的所以网站
  • 百度如何提交网站平顶山专业做网站公司
  • 做音乐网站的栏目南昌企业建站系统模板
  • 哪家做网站好开发工具控件属性怎么打开
  • 网站建设的例子网站建设公司基本流程
  • 番禺网站建设服务学习电子商务网站建设与管理的收获6
  • 深圳做网站制作广告设计设计
  • 网站目录程序网站开发的报告书
  • 防盗报警网站建设网站推广费用入什么科目
  • 金融公司 网站开发网址大全wordpress
  • 烟台哪里做网站好万能视频下载神器
  • 设计营销型网站域名海口网约车从业资格证
  • 稳压电源和开关电源
  • 长春仿站定制模板建站电商网站维护费用
  • 怎么做学校网站宜昌市水利建设工程协会网站
  • 网站推广计划书范文500字南充网站建设公司
  • 学生如何自己做网站济南网站建设选搜点网络
  • 网站开发的未来展望噼里啪啦免费观看高清
  • 开平网站开发海外医疗手机网站建设
  • 提供网站建设案例海口h5公司
  • 深度学习算法
  • 品牌创意型网站开发网站关键词
  • 博物馆网站建设目的网站是怎么做优化