自定义枚举类及使用enum的枚举类
2015-10-10 10:56
204 查看
自定义的枚举类,代码如下:
使用Enum的枚举类,代码如下:
package com.atguigu.java1; public class TestSeason { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName()); } } //枚举类 class Season{ //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在构造器中初始化。 private Season(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.通过公共的方法来调用属性 public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //4.创建枚举类的对象:将类的对象声明public static final public static final Season SPRING = new Season("spring", "春暖花开"); public static final Season SUMMER = new Season("summer", "夏日炎炎"); public static final Season AUTUMN = new Season("autumn", "秋高气爽"); public static final Season WINTER = new Season("winter", "白雪皑皑"); @Override public String toString() { return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]"; } public void show(){ System.out.println("这是一个季节"); } }
使用Enum的枚举类,代码如下:
package com.atguigu.java1; /* * 一、枚举类 * 1.如何自定义枚举类 * 2.如何使用enum关键字定义枚举类 * >常用的方法:values() valueOf(String name) * >如何让枚举类实现接口:可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。(相当于让每个对象重写抽象方法) */ public class TestSeason1 { public static void main(String[] args) { Season1 spring = Season1.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName()); System.out.println(); //1.values() Season1[] seasons = Season1.values(); for(int i = 0;i < seasons.length;i++){ System.out.println(seasons[i]); } //2.valueOf(String name):要求传入的形参name是枚举类对象的名字。 //否则,报java.lang.IllegalArgumentException异常 String str = "WINTER"; Season1 sea = Season1.valueOf(str); System.out.println(sea); System.out.println(); Thread.State[] states = Thread.State.values(); //可自行查看Thread的源码; for(int i = 0;i < states.length;i++){ System.out.println(states[i]); } sea.show(); } } interface Info{ void show(); } //枚举类 enum Season1 implements Info{ SPRING("spring", "春暖花开"){ public void show(){ System.out.println("春天在哪里?"); } }, SUMMER("summer", "夏日炎炎"){ public void show(){ System.out.println("生如夏花"); } }, AUTUMN("autumn", "秋高气爽"){ public void show(){ System.out.println("秋天是用来分手的季节"); } }, WINTER("winter", "白雪皑皑"){ public void show(){ System.out.println("冬天里的一把火"); } }; private final String seasonName; private final String seasonDesc; private Season1(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } // public void show(){ // System.out.println("这是一个季节"); // } }
相关文章推荐
- 关于泛型的使用
- Collections工具类的使用
- 关于Map接口的方法的使用及其Map下的子类的使用
- 移除VS2005方案中的Visual SourceSafe绑定信息
- Set接口常见的使用方法
- ArrayList常见的使用方法
- 比较ArrayList、LinkedList、Vector
- java集合的体系
- Java的JUnit
- Collection接口常用的方法
- Java的包装类,基本数据类型和String类之间的转化
- 多线程中的Double Close与System Call Hook
- Mikrotik RouterOS-脚本-花生壳动态域名解析
- LAMP搭建
- C++primer第五版笔记-第十章泛型算法
- 华为2016校招机试题(2015年9月) 海大下午场(包含实现代码,运行环境为VS2010)
- js客户端UI框架
- 在eclipse下如何查找某一个类的源码
- Java中this与super,构造器执行顺序
- Eclipse常用快捷键