黑马程序员_java中的枚举

来源:互联网 发布:php订单管理系统 编辑:程序博客网 时间:2024/06/05 07:09

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

        首先,什么是枚举,简言之,就是定义几个静态成员变量,每个成员变量是这个类的实例,比如定义一个person枚举,里面有两个成员 WOMAN和MAN,那么我们使用的时候就可以直接用person.MAN引用对象了。作用:就是提供一些常量; 

            使用枚举的时候注意事项:

            a、不能有public的构造方法,以免其他的类可以创建枚举实例 

            b、注意所有的枚举值是 public static final类型的。

            c、枚举覆盖了tostring()方法

            d、枚举可以定义构造方法,但是不能是public修饰,可以供内部调用

 

         举例:

                 package com.enums;

                 public class EnumTest {

                   
                   public static void main(String[] args) {
 
                      //枚举也是一种类型,定义变量,但是限制了变量值
                       //通过枚举名.值来获取枚举值
                        WeekDay e=WeekDay.MON;
                        System.out.println(e);
  
                       //获取便利枚举的值,利用values()方法可以获取所有取值
                           for(WeekDay w:WeekDay.values())
                                 System.out.println(w);
                            //通过 ordinal()方法获取枚举值的位置
                          System.out.println(WeekDay.MON.ordinal());            

                         }
 
                    //定义一个枚举,可以简单的理解为一个“类”,也是一种数据类型,用于限制类型的值
   public enum WeekDay{
  
                      //定义的每个实例是一个对象,创建对象的时候,会自动调用构造方法
                      //枚举列表必须写到前面,否则会编译出错

                       SUN(1),MON,TUE,WED,THI,FRI,SAT;
   
                       //定义一个枚举的参构造方法,且是私有的,只供内部使用
                      private  WeekDay(){ 
                      System.out.println("first");
                          }

                     //定义一个带参的构造方法
                      private WeekDay(int day){
                                               switch(day){
                                                          case 1: System.out.println("星期一");
                                                           case 2: System.out.println("星期二");
                                                            case 3: System.out.println("星期三");
                                                            case 4: System.out.println("星期四");
                                                             case 5: System.out.println("星期五");
                                                            case 6: System.out.println("星期六");
                                                            case 7: System.out.println("星期天");
                                                                }
                                                           

                         //这里说明了枚举值确实是定义枚举的一个对象,定义自己的方法

                         public static WeekDay getDay(int i){
                             if(i==1)  
                                  return WeekDay.SUN;
                             else if(i==2)
                                  return WeekDay.TUE;
                                  return null;
                             }

 


                       }
 

       现在对枚举的应用有了基本的了解!

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

0 0