JAVA枚举

1、枚举
            *需要在一定的范围内取值,这个值只能是这个范围内中的任意一个

            *现实场景:交通信号灯,三种颜色,只能亮一个
            
            *枚举类
                名称1,名称2,名称3;
                -每一个都是一个对象
                -enum{RED,GREEN,YELLOW;}

            *特殊枚举的操作
                -在枚举里面有构造方法
                    构造方法里面有参数,需要在每个实例上面都写参数
                -在枚举类有抽象方法
                    在枚举的每个实例里面都重写这个抽象方法

            *代码演示
                public class Enum {
                    //传统方式
                    private int color;

                    //第二种方式
                    private Color2 color2;
                    
                    //第三种方法jdk5.0新特性
                    private Color3 color3;
                    
                    public void test(){
                        this.color = Color1.GREEN;
                        this.color2 = Color2.GREEN;
                        this.color3 = Color3.GREEN;
                    }
                }

                class Color1{
                    public static final int RED =1;
                    public static final int GREEN =2;
                    public static final int YELLOW =3;
                }

                class Color2{
                    //构造方法私有化
                    private Color2(){}
                    public static final Color2 RED = new Color2();
                    public static final Color2 GREEN = new Color2();
                    public static final Color2 YELLOW = new Color2();
                }

                enum Color3{
                    RED,GREEN,YELLOw;
                }
                enum Color4{
                    //重写构造函数
                    RED("red"){

                        @Override
                        public void print1() {
                            // TODO Auto-generated method stub
                            
                        }
                    },YELLOW("yellow"){

                    @Override
                    public void print1() {
                        // TODO Auto-generated method stub
                        
                    }},GREEN("green"){

                    @Override
                    public void print1() {
                        // TODO Auto-generated method stub
                        
                    }};
                    
                    private Color4(String name){}
                    
                    //抽象方法
                    public abstract void print1();
                }

            *枚举类的API
                -java中声明的枚举类,均是java.lang.Enum类中孩子,继承了Enum所有的方法。

                -常用方法
                    --name():返回枚举对象名称
                    --ordinal():返回枚举对象下标
                    --valueOf(Class enumClass ,String name):转换枚举对象
                
                -自定义枚举类,在编译阶段自动生成下面方法
                    --valueOf(String name)转换枚举对象
                    --values():获取所有枚举对象数组
                
                -枚举对象、枚举对象下标、枚举对象名称之间转换
            
            *代码演示
                public class TestEnum {
    
                //知道枚举的下标,获取枚举的对象和名称
                @Test
                public void test3(){
                    int index = 2;
                    //得到枚举对象
                    Color[] c = Color.values();
                    //根据下标的得到对象
                    Color c2 = c[index];
                    //得到枚举名称
                    String name = c2.name();
                    
                    System.out.println("Name:"+name);
                }
                
                //知道枚举的名称,得到枚举的对象和下标
                @Test
                public void test2(){
                    String name = "GREEN";
                    //得到对象
                    Color gre = Color.valueOf(name);
                    //得到下标
                    int index = gre.ordinal();
                    
                    System.out.println("index:"+index);
                }
                //知道枚举的对象,得到枚举名称和下标
                @Test
                public void test1(){
                    //得到枚举对象
                    Color c = Color.GREEN;
                    //枚举名称
                    String name = c.name();
                    //枚举下标
                    int index = c.ordinal();
                
                    System.out.println(name+"--"+index);
                }
                
            }

            enum Color{
                RED,GREEN,YELLOW;
            }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值