zoukankan      html  css  js  c++  java
  • Java

    枚举

    JDK1.5之后可以定义enum类型

    1.枚举常量的使用:

          利用枚举来定义  星期一 到 星期日  的常量


    public
    enum MyDay { monday,tuesday,wednesday,thursday,friday,saturday,sunday;   //先定义枚举对象 } public class Test { public static void main(String[] args){
          //可以直接引用 类名.枚举对象 MyDay myDay
    = MyDay.friday; MyDay myDay1 = MyDay.monday; MyDay myDay2 = MyDay.saturday; System.out.println(myDay); System.out.println(myDay1); System.out.println(myDay2); } } 输出结果: friday monday saturday
    返回类型 方法名称 方法说明
    int compareTo(E o) 比较此枚举与指定对象的顺序
    boolean equals(Object other) 当指定对象等于此枚举常量时,返回 true。
    Class<?> getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象
    String name()   返回此枚举常量的名称,在其枚举声明中对其进行声明
    int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
    String toString() 返回枚举常量的名称,它包含在声明中
    static<T extends Enum<T>> T static valueOf(Class<T> enumType, String name) 返回带指定名称的指定枚举类型的枚举常量。

    2.Enum类常用方法之valueOf(通过给定的name获取对应的枚举对象)
    Enum类是枚举类默认继承的类,然后间接继承Object 

     
    public enum MyDay {
        monday,tuesday,wednesday,thursday,friday,saturday,sunday;
    
    }
    import java.util.Scanner;
    
    public class Test {
        public static void main(String[] args){
            Scanner input = new Scanner(System.in);
            System.out.println("请输入一个星期的英文单词:");
            String key = input.nextLine();
            MyDay myDay = MyDay.valueOf(key);
        //枚举的switch 的应用
    switch (myDay){ case monday: System.out.println("您输入的是星期1"); break; case tuesday: System.out.println("您输入的是星期2"); break; case wednesday: System.out.println("您输入的是星期3"); break; case thursday: System.out.println("您输入的是星期4"); break; case friday: System.out.println("您输入的是星期5"); break; case saturday: System.out.println("您输入的是星期6"); break; case sunday: System.out.println("您输入的是星期7"); break; default: System.out.println("出现错误"); } } }
     

     3.Enum类常用方法之values(获取全部对象)

    public enum MyDay {
        monday,tuesday,wednesday,thursday,friday,saturday,sunday;
    
    }
    
    public class Test {
        public static void main(String[] args){
    
            MyDay myDay = MyDay.friday;
            //默认间接继承Object
            //除了Object类的方法 还有一些方法,默认继承Enum
            MyDay [] myDay1 = MyDay.values();
          //利用增强型for循环遍历
    for(MyDay myDay2:myDay1){ //name() 获取枚举对象的名字 //ordinal() 获取枚举对象所罗列的顺序 System.out.println(myDay2.name() + "----"+myDay2.ordinal()); } } } 执行结果 monday----0 tuesday----1 wednesday----2 thursday----3 friday----4 saturday----5 sunday----6

     4.enum类中可以创建自己的属性和方法:

    public enum Day{
    
        //描述了七个当前类的对象
        monday("星期一",1),tuesday("星期二",2),wednesday,thursday,friday,saturday,sunday;
    
        private String name;
        private int index;
    
        private Day(){}
        private Day(String  name,int index){
            this.name=name;
            this.index=index;
        }
    
        public String getName(){
            return this.name;
        }
        public void setName(String name){
            this.name=name;
        }
    
    }
  • 相关阅读:
    IO多路复用 IO异步
    你没听说过的协程
    事件驱动和IO操作
    堡垒机前戏——paramiko
    听说过的多进程,多线程到底是什么鬼
    socket套接字
    看见就烦的异常
    struts2值栈内部数据结构详解
    hibernate一级缓存的源码初窥
    使用自定义标签模拟jstl的<c:for each>标签
  • 原文地址:https://www.cnblogs.com/yyanghang/p/11165814.html
Copyright © 2011-2022 走看看