• JavaSE复习_6 枚举类


    △单例类是指只有一个实例,而枚举类实际上就是有有限个实例的类,在类里已经把实例定义好了。

    △枚举类的三种创建形式:

    1)

         enum Week {    
    
              MON,TUE,WED;//枚举类有默认构造函数创建的三个实例}
                  }

    2)

    enum Week {
    
         MON("星期一"), TUE( "星期二"),WED ("星期三" );      //具有参数的构造函数
    
         private String name;
    
         Week(String name) {
    
                this. name= name;
    
         }
    
    }

    3)

    enum Week {
    
         MON("星期一") {
    
                public void show() {                             //采用枚举类的匿名子类
    
                    System. out.println( "星期一到啦!" );
    
               }
    
         },TUE("星期二"){
    
                public void show() {
    
                    System. out.println( "星期二到啦!" );
    
               }
    
         },WED("星期三") {
    
                public void show() {
    
                    System. out.println( "星期三到啦!" );
    
               }
    
         };          //具有参数的构造函数
    
         private String name;
    
         Week(String name) {
    
                this. name= name;
    
         }
    
         public abstract void show();     //具有抽象方法
    }
    △枚举类的注意事项:
    * 定义枚举类要用关键字enum
        * 所有枚举类都是Enum的子类
        * 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
        * 枚举类可以有构造器,但必须是private的,它默认的也是private的。
        * 枚举类也可以有抽象方法,但是枚举项必须重写该方法
        * 枚举在switch语句中的使用:可以对枚举类的成员进行枚举,case里直接写成员变量名即可,使用方法如下:
     public class Demo {
         public static void main(String[] args) {
               Name name=Name. tom;
                switch( name) {
                case tom:
                    System. out.println( "我是tom" );
                     break;
                case jack:
                    System. out.println( "我是jack" );
                     break;
                case bob:
                    System. out.println( "我是bob");
                     break;
               }
         }
    }
    enum Name{
         tom,jack,bob;
    }
    *可以根据输入获取相应的枚举常量名获取枚举对象,采用的是枚举的valueOf方法
         static Enum valueOf(Class enumclass,String name):返回指定名字给定类的枚举常量
  • 相关阅读:
    SDK安卓模拟器CPU/ABI为灰色不显示的解决
    解决c3p0:Connections could not be acquired from the underlying database!
    ORA-12170 TNS 连接超时
    linux下FTP服务器配置-VSFTP
    SecureCRT右键粘贴的设置
    JDK1.6官方下载_JDK6官方下载地址
    Unsupported major.minor version 51.0解决办法
    Oracle按周统计数据的几种方法
    org.apache.mina.filter.codec.ProtocolDecoderException: java.nio.BufferOverflowException解决
    Linux中JDK1.6的安装和配置方法
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/5576052.html
Copyright © 2020-2023  润新知