Enum 枚举类型小结

枚举类型特性:

  • enum和class、interface的地位一样
  • 使用enum定义的枚举类默认继承了java.lang.Enum,而不是继承Object类。枚举类可以实现一个或多个接口。
  • 枚举类的所有实例都必须放在第一行展示,不需使用new 关键字,不需显式调用构造器。自动添加public static final修饰。
  • 使用enum定义、非抽象的枚举类默认使用final修饰,不可以被继承。
  • 枚举类的构造器只能是私有的。

枚举类如下:

  //   Enum.java
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import static java.lang.System.out;
     
    public enum EnumTest {//枚举类
        SPRING("春天"),SUMMER("夏天"),FALL("秋天"),WINTER("冬天");//第一行,枚举实例(枚举类型成员,由于它们默认是被public,static,final修饰。所以。一般大写)
        
          private  String name;//非枚举类型成员, 可变化
        //private EnumTest(){}
          private EnumTest(String name){
                    this.name = name ;
          }
          public String getName(){//向外提供接口
               return "get "+name;
          }
          public void setName(String str){//向外提供接口
                name = str;
          }
     //由于枚举类的核心部分是第一行的枚举实例,并且枚举实例是不能通过new来创建的,对于他们的管理,引用,是通过枚举类型操作方法:values,valueOf等
    
    }

测试类如下

// TestEnum.java
import static java.lang.System.out;
import java.util.Scanner;

public class TestEnum {

  /**
         * @param args
  */
 public static void main(String[] args) {
            // TODO Auto-generated method stub
           System.out.println("test:");
           Scanner ins = new Scanner(System.in);
           String outs = ins.next().toUpperCase();
           EnumTest[] hm = EnumTest.values();//集合类大小用.size();数组用length
           for(int i =0; i <EnumTest.values().length;i++ ){
              out.println(hm[i].getName());  
           }
           for(EnumTest t:hm){
              out.println(t+" "+t.getName());  
           }
          EnumTest et = EnumTest.valueOf(outs);//将普通字符串(与某个枚举实例名字相同)与该枚举实例对应起来
          out.println("你选择了当中的 : "+et);
          out.println(EnumTest.SUMMER.getName());
          et.setName("Summer");
          out.print(EnumTest.SUMMER.getName());
     }
}			

参考博客:
1.https://www.cnblogs.com/sister/p/4700702.html
【JAVA】浅谈java枚举类
2.https://blog.youkuaiyun.com/you23hai45/article/details/54633189
No enum constant com.you.example.EnumExample.Season.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值