第一行java与源代码课程08章枚举_第1页
第一行java与源代码课程08章枚举_第2页
第一行java与源代码课程08章枚举_第3页
第一行java与源代码课程08章枚举_第4页
第一行java与源代码课程08章枚举_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

李兴华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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论