[学习笔记] Java枚举

枚举

在Java中,枚举是一种特殊的类,一般用于表示一组常量;

定义枚举时使用enum关键字,各个常量使用逗号分隔;

1
2
3
4
5
6
7
8
9
10
11
enum Color    //定义枚举
{
    RED, GREEN, BLUE;
}
 
public class Test{
    public static void main(String[] args){
        Color c=Color.RED;
       System.out.println(c);
    }
}

 

也可以在类的内部定义枚举:

复制代码
public class Test{
    enum Color{
        RED, GREEN, BLUE;
    }

    public static void main(String[] args){
        Color c=Color.BLUE;
        System.out.println(c);
    }
}
复制代码

 

每个枚举都以内部类的形式实现,且所有的枚举值都是public static final的,所以以上的枚举转换为内部类的形式为:

复制代码
class Color{

    public static final Color RED=new Color();

    public static final Color GREEN=new Color();

    public static final Color BLUE=new Color();

}
复制代码

 

迭代枚举元素

可以使用for循环来遍历枚举元素

复制代码
enum Color
{
    RED, GREEN, BLUE;
}
public class Test { public static void main(String[] args) { for (Color c : Color.values()) { System.out.println(c); } } }
复制代码

 

枚举类与switch语句结合

复制代码
enum Color
{
    RED, GREEN, BLUE;
}
public class Test { public static void main(String[] args) { Color c = Color.BLUE; switch(c) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } } }
复制代码

 

枚举类的常用方法

使用enum关键字定义的枚举默认继承 java.lang.Enum 类并实现 java.lang.Serializable 和j ava.lang.Comparable 接口;

 

枚举的常用方法:

  • values()方法

          返回枚举类中所有的值;

 

  • ordinal()方法

          找到每个枚举常量的索引;

 

  • valueOf()方法

          返回指定字符串的枚举常量;

 

枚举类成员

枚举类也可以拥有变量、方法包括构造方法,但构造方法只能使用private访问修饰符修饰,因此外部类无法调用;

枚举类的方法既可以是具体方法,也可以是抽象方法,若枚举类具有抽象方法,则枚举类的每个对象都需要对其进行实现;

复制代码
enum Color{
    RED{
        public String getColor(){//枚举对象实现抽象方法
            return "红色";
        }
    },
    GREEN{
        public String getColor(){//枚举对象实现抽象方法
            return "绿色";
        }
    },
    BLUE{
        public String getColor(){//枚举对象实现抽象方法
            return "蓝色";
        }
    };
public abstract String getColor();//定义抽象方法 } public class Test{ public static void main(String[] args) { for (Color c:Color.values()){ System.out.print(c.getColor() + " "); } } }
复制代码

 

posted @   糖小豆  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示