枚举类:用enum关键字来定义一个枚举类

1)枚举类的两种定义方法
                1》通过构造器
                    public enum Grade{
                        A("A", "90-100"),B("B","80-89"),C("C", "70-79"),D("D", "80-89"),E("E", "90-100");

                        private String tip;
                        private String desc;

                        private Grade(String tip, String desc){
                            this.tip = tip;
                            this.desc = desc;
                        }

                        public String getTip() {
                            return tip;
                        }

                        public String getDesc() {
                            return desc;
                        }

                    }
                2》通过匿名内部类(一般用于有抽象方法的枚举)

                    eg:
                        public enum Season {//注意:含有抽象方法的枚举类不用加abstract
                            SPRING{
                                @Override
                                public void show(){
                                    System.out.println("春天");
                                }
                            },SUMMER{
                                @Override
                                public void show() {
                                    System.out.println("夏天");
                                }
                            },AUTOMN{
                                @Override
                                public void show() {
                                    System.out.println("秋天");
                                }
                            },WINNTER{
                                @Override
                                public void show() {
                                    System.out.println("冬天");
                                }
                            };
                            //抽象方法
                            public abstract void show();
                        }
            3)switch语句和枚举类的联用
                eg:
                    Season season = Season.SPRING;
                    String msg = null;
                        switch(season){
                        case SPRING:msg = "1"; break;//注意不是Season.SPRING
                        case SUMMER:msg = "2"; break;
                        case AUTOMN:msg = "3"; break;
                        case WINNTER:msg = "4"; break;
                        }
                    System.out.println(msg);
            4)枚举类常用方法
                1》String name():返回枚举值的名称
                2》int ordinal():显示枚举值对应的索引,从0开始
                3》type[] values():获得该枚举类对应的所有枚举值,返回一个数组
                4》static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)://将字符串转换成带指定名称的指定枚举类型的枚举常量。
                eg:
                    Season season = Season.SPRING;
                    System.out.println(season.name());//SPRING
                    System.out.println(season.ordinal());//0【下标】

                    Season[] seasons = season.values();//获得属性值数组
                    for(Season s : seasons){
                        System.out.println(s.name());
                    }

                    //Season.valueOf(Season.class, "QQ");//可判断QQ是否属于枚举值之一,
                    //抛出IllegalArgumentException:异常

                    System.out.println("=="+Season.valueOf(Season.class, "SPRING").name());//正常:SPRING.
                    //Season.valueOf(Season.class, "spring");//也会抛出异常

            5)理解:
                1》枚举类中的每一个枚举值,相当于是实例变量
                2》枚举类与普通类一致,可以继承或实现,如果有抽象方的话,可以利用每个枚举类以匿名内部类的方式去实现
                3》枚举值可以用在switch语句的case后面,并且直接些枚举值,不需要加上枚举类。
                4》若枚举类只有一个枚举值,则可类似于单例设计模式。

        补充:注意枚举类和枚举集合的区别.Enum  Enumeration

eration

时间: 2024-10-03 14:01:07

枚举类:用enum关键字来定义一个枚举类的相关文章

类继承,定义了一个点类point,然后线条类line继承了point类,正方形类square继承line类

类继承,定义了一个点类point,然后线条类line继承了point类,正方形类Suare继承line类 正方形四个角坐标关系如图 1 /** 2 * 3 java继承实例. 4 5 6 定义了一个点类point,然后线条类line继承了point类,正方形类square继承line类. 7 8 */ 9 10 //点类 11 class PointDemo 12 { 13 private int x; 14 private int y; 15 private static int pCount

C#中的枚举类型(enum type)

ylbtech 原文 C#中的枚举类型(enum type) 概念 枚举类型(enum type)是具有一组命名常量的独特的值类型.在以下示例中: enum Color { Red, Green, Blue } 声明一个名为 Color 的枚举类型,该类型具有三个成员:Red.Green 和 Blue. 枚举具体是怎么声明呢?枚举声明用于声明新的枚举类型.枚举声明以关键字 enum 开始,然后定义该枚举类型的名称.可访问性.基础类型和成员.具体格式: 修饰词(new.public.protect

一个java 源文件,可以有多个类,但是只能有一个public修饰的类

每个Java源文件是一个java编译器的一个编写单元.编译器每编写一个.java文件(编译单元),会输出很多与java文件类的名称对应的从class文件,不仅仅限制于public修饰的.但是public类是用来编译单元存在的公开接口.如果没有的话,运行会报错,提示找不到加载的类. public 就相当于一个主类.但是只能有一个主类,而且名字和java源文件名称一致,作为唯一的接口.

08有关类设计和实现的问题(类的结构关系)

一. 类内部的设计和实现 ? 给类定义合理的接口,对于创建高质量程序起到了关键作用.然而,类内部的设计和实现也同样重要.这里主要论述关于包含.继承.成员函数和数据成员.类之间的耦合性.构造函数.值对象与引用对象等. 1. 包含("有一个..."关系)--"has a" ? 包含是一个非常简单的概念,它表示一个类含有一个基本数据元素或对象.包含是面向对象编程中的主力技术. 1.1 通过包含来实现"有一个 / has a"的关系 1.2 警惕有超过约

java 枚举类小结 Enum

好久没有接触枚举类了,差不多都忘了,今天抽出个时间总结一下吧.说实话,枚举类确实能够给我们带来很大的方便. 说明:枚举类它约定了一个范围,可以理解成只可以生成固定的几个对象让外界去调用,故枚举类中的构造方法都是private类型的.进而求其次,究竟枚举类到底有何特殊之处呢? 呈上代码一览(本人也是java Android 领域的菜鸟,如有错误之处,希望大家能够给以指点) 1 /** 2 * 测试枚举类 3 * @author Administrator 4 * @Date 2015-8-3 5

在命名空间RegularExpressions里有下面这些对象,10个类,一个代理,一个枚举类型

摘抄自:http://blog.csdn.net/weiwenhp/article/details/7665816 Classes   Class Description   Capture Represents the results from a single subexpression capture. Capture represents one substring for a single successful capture.   CaptureCollection Represen

一天一个Java类之Java关键字

关键字含义 abstract表明类或者成员方法具有抽象属性 assert用来进行程序调试 boolean基本数据类型之一,布尔类型 break提前跳出一个块 byte基本数据类型之一,字节类型 case用在switch语句之中,表示其中的一个分支 catch用在异常处理中,用来捕捉异常 char基本数据类型之一,字符类型 class类 const保留关键字,没有具体含义 continue回到一个块的开始处 default默认,例如,用在switch语句中,表明一个默认的分支 do用在do-whi

【WPF】如何把一个枚举属性绑定到多个RadioButton

一.说明 很多时候,我们要把一个枚举的属性的绑定到一组RadioButton上.大家都知道是使用IValueConverter来做,但到底怎么做才好? 而且多个RadioButton的Checked和UnChecked都会触发绑定,这样就会调多次的Set. 二.目的 实现一个枚举属性绑定到多个RadioButton, 属性的Set方法不会被触发多次. 三.实现 方法大家都知道,就是利用Converter和ConevertParamter属性. 因为多个控件绑定一个属性,Checked和UnChe

【enum】如何在枚举中定义自定义的方法,并进行使用

1.定一个枚举类 package com.eud.t1; public enum Color { //定义枚举中的常量 RED(1,"hongse"), GREEN(2,"qingse"),BLACK(3,"heise"); private int code; private String name; public int getCode() { return code; } public void setCode(int code) { thi