




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
李兴华Java培训系列课程枚举本章学习目标理解可变参数方法的定义及使用;理解增强型for循环的特点及使用;理解静态导入的操作;理解泛型的主要作用及实现;理解多例设计模式和枚举的操作关系;理解Annotation的定义及使用;理解接口中定义普通方法与静态方法的作用;理解Lamda表达式的产生背景以及使用语法;理解方法引用的概念;掌握内建函数式核心接口的使用。枚举枚举是JDK1.5之后增加的一个主要新功能,利用枚举可以简化多例设计模式(一个类只能够产生固定几个实例化对象)的定义,同时在Java中的枚举也可以像普通类那样定义属性、构造方法、实现接口等认识枚举枚举主要用于定义一组可以使用的类对象,这样在使用时只能够使用固定的几个对象来进行类的操作。这样的操作形式在实际生活中非常的多:如果要表示日期的对象,那么只能够有以下几种定义:SUNDAY(星期日)、MONDAY(星期一)、TUESDAY(星期二)、WEDNESDAY(星期三)、THURSDAY(星期四)、FRIDAY(星期五)、SATURDAY(星期六);从JDK1.5开始,专门提供了一个新的关键字:enum,利用enum关键字就可以定义枚举类型。范例:定义颜色的枚举类packagecom.yootk.demo;enumColor{ //定义枚举类
RED,GREEN,BLUE; //表示此处为实例化对象}public
classTestDemo{
public
static
voidmain(String[]args){ Colorred=Color.RED; //直接取得枚举对象 System.out.println(red); }}程序执行结果:REDEnum类枚举只需要使用enum关键字就可以定义,但是严格来讲,枚举只是类结构的加强而已。因为在Java中使用enum定义的枚举类就相当于默认继承了java.lang.Enum类,此类定义如下:publicabstractclassEnum<EextendsEnum<E>>extendsObjectimplementsComparable<E>,SerializableEnum类定义的方法No.方法类型描述1protectedEnum(Stringname,intordinal)构造传递枚举对象的名字以及序号2publicfinalintordinal()普通取得当前枚举对象的序号3publicfinalStringname()普通取得当前枚举对象的名字packagecom.yootk.demo;enumColor{ //定义枚举类
RED,GREEN,BLUE; //表示此处为实例化对象}public
classTestDemo{
public
static
voidmain(String[]args){ Colorred=Color.RED; //直接取得枚举对象 System.out.println("枚举对象序号:"+red.ordinal()); System.out.println("枚举对象名称:"+red.name()); }}程序执行结果:枚举对象序号:0枚举对象名称:RED范例:返回枚举中的全部内容packagecom.yootk.demo;enumColor{ //定义枚举类
RED,GREEN,BLUE; //表示此处为实例化对象}public
classTestDemo{
public
static
voidmain(String[]args){
for(Colorc:Color.values()){ System.out.println(c.ordinal()+"-"+c.name()); } }}程序执行结果:0-RED1-GREEN2-BLUE枚举中定义其它结构按照之前所理解,枚举就属于多例设计模式,那么既然是多例设计模式,对于类之中就肯定有多种组成,包括属性、方法、构造方法,在枚举之中也同样可以定义以上的内容,但是此处需要注意两点问题:枚举之中定义的构造方法不能够使用public声明,如果没有无参构造,请手工调用构造传递参数;枚举对象必须要放在首行,随后才可以定义属性、构造、普通方法等结构。范例:扩充枚举功能packagecom.yootk.demo;enumColor{
RED("红色"),GREEN("绿色"),BLUE("蓝色"); //定义枚举对象,必须写在首行
privateStringtitle; //属性
privateColor(Stringtitle){ //构造方法,不能使用public声明
this.title=title; }
publicStringtoString(){ //覆写toString()方法
return
this.title; }}public
classTestDemo{
public
static
voidmain(String[]args){
for(Colorc:Color.values()){ //取得全部枚举对象 System.out.print(c+"、"); //直接输出对象调用toString() } }}程序执行结果:红色、绿色、蓝色、范例:枚举实现接口packagecom.yootk.demo;interfaceIMessage{
publicStringgetTitle();}enumColorimplementsIMessage{ //实现接口
RED("红色"),GREEN("绿色"),BLUE("蓝色"); //定义枚举对象,都是IMessage接口实例
privateStringtitle; //属性
privateColor(Stringtitle){ //构造方法,不能使用public声明
this.title=title; }
publicStringgetTitle(){ //覆写方法
return
this.title; }
publicStringtoString(){ //覆写toString()方法
return
this.title; }}public
classTestDemo{
public
static
voidmain(String[]args){ IMessagemsg=Color.RED; //实例化接口对象 System.out.println(msg.getTitle()); }}程序执行结果:红色范例:在switch语句上使用枚举packagecom.yootk.demo;enumColor{
RED,GREEN,BLUE;}public
classTestDemo{
public
static
voidmain(String[]args){ Colorc=Color.RED;
switch(c){ //支持枚举判断
case
RED: //判断枚举内容 System.out.println("这是红色!");
break;
case
GREEN: //判断枚举内容 System.out.println("这是绿色!");
break;
case
BLUE: //判断枚举内容 System.out.println("这是蓝色!");
break; } }}程序执行结果:这是红色!范例:在类设计结构中使用枚举packagecom.yootk.demo;enumSex{
MALE("男"),FEMALE("女");
privateStringtitle;
privateSex(Stringtitle){
this.title=title; }
publicStringtoString(){
return
this.title; }}classMember{
privateStringname;
private
int
age;
privateSexsex; //定义性别属性
publicMember(Stringname,int
age,Sexsex){
this.name=name;
this.age=age;
this.sex=sex; }
publicStringtoString(){
return
"姓名:"+this.name+",年龄:"+this.age+",性别:"+this.sex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年汽车美容师技能框架图解试题及答案
- 汽车维修工考试中常见问题的解决方案试题及答案
- 2024年CPBA考试的注意事项试题及答案
- 国际宠物营养标准对比考题试题及答案
- 2024年六年级语文实际应用试题及答案
- 二手车评估中的质量控制与监测试题及答案
- 二手车评估师考试常见问题及试题及答案
- 2024年计算机基础考试自信应战及答案
- 2024年计算机基础学习路径试题及答案
- 幼儿园指导纲要培训:艺术领域
- 风景园林基础试题及答案
- 2025-2030年中国喷涂加工行业市场全景调研及未来趋势研判报告
- 人工智能素养测试题及答案(初中版)
- 人教版八年级下册语文第三单元测试题含答案
- 四年级下册《生活·生命.安全》全册教案
- 2025年河南工业和信息化职业学院单招职业技能测试题库带答案
- 《园林微景观设计与制作》课件-项目一 园林微景观制作准备
- 打开“心”世界与“压力”和解-2025年春季学期初中生心理健康主题教育班会课件
- 2025年湖南邵阳新宁县城乡建设发展集团有限公司招聘笔试参考题库附带答案详解
- 福建省2025届中考生物押题试卷含解析
- 试机协议合同范本
评论
0/150
提交评论