zoukankan      html  css  js  c++  java
  • java中的枚举enum

    个人感觉,枚举类和普通的java类区别不是很大,接下来简单的回忆一下枚举类

    1.创建一个枚举类 Gender

    public enum Gender {
      
    }

     和普通的测试类 GenderTest

    public class GenderTest {
    
    }

    2.枚举类介绍

    ①在枚举类中添加两个变量

    public enum Gender {
        male,female;
    }

      在测试类中直接输出

    @Test
    public void test(){
        Gender male = Gender.male;
        System.out.println(male);
    }

    最后输出  

    male

    其实,枚举类中的male,female相当于自动给你new 了两个Gender实例。枚举类中的构造函数是私有的,即不能使用 Gender male = new Gender();

    这样普通java类创建实例的方法。

    ②给枚举类加方法

    在Gender枚举类中添加方法

    public int getAge(){
        return 1;
    }

    在测试类中

    @Test
    public void test2(){
        Gender male = Gender.male;
        System.out.println(male.getAge());
    }

    输出   1

    ③用构造器给参数赋值

    public enum Gender {
        //和new一样,要给构造器传值
        male("male-text"),female("female-text");
        
        //带参数构造器 覆盖默认构造器
        private Gender(String text){
            this.text=text;
        }
        
        private String text;
        public String getText() {
            return text;
        }
        public void setText(String text) {
            this.text = text;
        }
    }

    测试

    @Test
    public void test3(){
        Gender male = Gender.male;
        System.out.println(male.getText());
    }

    输出    male-text

    ④添加抽象方法

    public enum Gender {
        //和new一样,要给构造器传值
        //必须要实现抽象方法
        male("male-text"){
            public int getAge(){
                return 20;
            }
        },female("female-text"){
            public int getAge(){
                return 22;
            }
        };
        
        //带参数构造器 覆盖默认构造器
        private Gender(String text){
            this.text=text;
        }
        
        private String text;
        public String getText() {
            return text;
        }
        public void setText(String text) {
            this.text = text;
        }
        
        //添加一个抽象方法
        public abstract int getAge();
        
    }

    测试

    @Test
    public void test4(){
        Gender male = Gender.male;
        System.out.println(male.getAge());
    }

    输出   20

    3.总结

    从上面的测试可以看出,其实枚举类和普通类还是有很多共性的,或者说是特殊的普通类。

    个人理解,肯定还有很多不足的地方。

  • 相关阅读:
    ios7 苹果原生二维码扫描(和微信类似)
    ios7之后 根据UILabel的文字计算frame的方法
    [Luogu1944] 最长括号匹配
    [bzoj3916] friends
    [NOIp2006] 能量项链
    [NOIp2003] 加分二叉树
    [Luogu1353] 跑步Running
    [Luogu2214] Mooo Moo S
    [POJ2452] Sticks Problem
    [POJ2406] Power Strings
  • 原文地址:https://www.cnblogs.com/Iqiaoxun/p/5459759.html
Copyright © 2011-2022 走看看