高新技术知识——枚举

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

26,高新技术——jdk 1.5新特性枚举

26.1 定义枚举类型

格式:权限修饰符 enum 枚举类名{

枚举对象1,枚举对象2,……;
}

枚举的作用:用于限定对象的取值范围。

enum 关键字用于声明一个枚举类型,实际上就是定义了一个继承Enum类的类。

如:

 

public enum Week {

   MON,TUE,WED,THU,FRI,SAT,SUN;//枚举类中的元素,相当于一个个枚举类的对象。

}

 

枚举类型的特点:

1,  枚举类的构造函数是private权限的。

2,  枚举类可以实现接口或内部定义抽象方法,但不能继承其他类。因为,枚举类型默认继承Enum类。

3,  如果定义了抽象方法,那么枚举类中的对象要覆盖这些方法。

 

 

26.2 枚举类的静态方法

enum 关键字定义的枚举类默认继承Enum类,就拿到了Enum类中的所有方法。

 

valueOf(String str);

将字符串枚举常量名,转成枚举对象实体。

values();

返回一个包含所有枚举常量的数组。

如:

package Default;

public class MyEnum{

   public static void main(String[] args)throws ClassNotFoundException {

      Week [] weeks=Week.values();//获取一个包含所有枚举常量的数组.

      for(Week week:weeks){//遍历这个数组。

         System.out.println(week);

      }

      Week mon=Week.valueOf("MON");//把任意字符串枚举常量转成枚举对象.

       System.out.println(mon);

   }

}
enum Week{//定义一个枚举类

   MON,TUE,WED,THU,FRI,SAT,SUN;

}


26.3 枚举类的常用非静态方法

toString();

返回此枚举常量的名称。

 

String name();

返回此枚举常量的名称

 

int ordinal();

返回此枚举常量的序数,从0开始。

 

如:

package Default;

public class MyEnum{

   public static void main(String[] args)throws ClassNotFoundException {

      Week [] weeks=Week.values();

      for(Week week:weeks){

         System.out.println(week.name());//返回枚举常量的字符串名称.

         System.out.println(week.ordinal());//返回枚举常量的序数.

         System.out.println(week.toString());//返回枚举常量的字符串名称.

      }

   }

}

enum Week{

   MON,TUE,WED,THU,FRI,SAT,SUN;

}

 


26.4 枚举类中可以定义构造函数、抽象方法、实现其他接口。

注意:枚举类中的构造函数默认是private权限的。枚举类中的构造函数不能是:publicprotected

      枚举类中定义了抽象方法,每个枚举常量都要覆盖抽象方法。

         枚举类如果实现了某些接口,每个枚举常量都要覆盖接口中的方法或者只由枚举类覆盖接口中的方法。

 

如:

package Default;

public lass MyEnum {

   public static void main(String[] args)throws ClassNotFoundException {

      Week [] weeks=Week.values();

      for(Week week:weeks){

         System.out.println(week.getWeek());

      }

 

   }

}

 

enum Week implements Inter {//创建枚举对象,并实现接口

   MON() {

      @Override

      public String getWeek() {//分别覆盖接口中的抽象方法.

         return"星期一";

      }

   },

   TUE() {

      @Override

      public String getWeek() {

         return"星期二";

      }

   },

   WED() {

      @Override

      public String getWeek() {

         return"星期三";

      }

   },

   THU() {

      @Override

      public String getWeek() {

         return"星期四";

      }

   },

   FRI() {

      @Override

      public String getWeek() {

         return"星期五";

      }

   },

   SAT() {

      @Override

      public String getWeek() {

         return"星期六";

      }

 

   },

   SUN() {

      @Override

      public String getWeek() {

         return"星期日";

      }

 

   };

   private String value;

   private Week() {//枚举类中定义构造函数.

   }
}

interface Inter {//创建一个接口.

   String getWeek();

}

26.5       使用枚举实现单例设计模式.

枚举实现单例设计模式会相对比较方便,只需要在枚举类中定义一个常量,就可以完成单例设计模式.省去了私有化构造函数和对外提供获取实体的公共方法的步骤.

如:

package Default;

public class MyEnum {

   public static void main(String[] args)throws ClassNotFoundException {

      SingleInstance s1=SingleInstance.SINGLE;

      SingleInstance s2=SingleInstance.SINGLE;

      SingleInstance s3=SingleInstance.SINGLE;

      System.out.println(s1==s2);

      System.out.println(s1==s3);

   }

}

enum SingleInstance{

   SINGLE;//只要定义一个枚举常量.

}

/*

 打印结果:

true

true*/

 

 

由此可见,使用枚举可以轻松实现单例设计模式.

总结:Java中除了类和接口外,还可以定义枚举类型.当需要限定对象的取值范围时,就可以使用枚举.

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值