java枚举类型-学习初
2013-05-27 14:48
302 查看
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:
Java代码
public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN
}
显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类,而且是类库中Enum类的子类(java.lang.Enum<E>)。
Java代码
1、Color枚举类是特殊的class,其枚举值(RED,BLUE...)是Color的类对象(类实例):Color c=Color.RED;而且这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。
2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:
(1) 构造器只是在构造枚举值的时候被调用。
(2) 构造器只能私有private,绝对不允许有public构造器。这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。
下面是我自己写的例子:
Java代码
public class Test{
public static void main(String[] args) throws Exception
{
Test.outputWeekDay(WeekDay.Monday);
}
public static void outputWeekDay(WeekDay w)
{
System.out.println(w);
}
}
enum WeekDay
{
Monday(1),Tuesday(2),Wednesday(3);
private int weekValue;
private WeekDay(int weekValue)
{
this.weekValue = weekValue;
}
@Override
public String toString()
{
// TODO Auto-generated method stub
return String.valueOf(this.weekValue);
}
}
Java代码
public enum Color{
RED,BLUE,BLACK,YELLOW,GREEN
}
显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类,而且是类库中Enum类的子类(java.lang.Enum<E>)。
Java代码
1、Color枚举类是特殊的class,其枚举值(RED,BLUE...)是Color的类对象(类实例):Color c=Color.RED;而且这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。
2、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:
(1) 构造器只是在构造枚举值的时候被调用。
(2) 构造器只能私有private,绝对不允许有public构造器。这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。
下面是我自己写的例子:
Java代码
public class Test{
public static void main(String[] args) throws Exception
{
Test.outputWeekDay(WeekDay.Monday);
}
public static void outputWeekDay(WeekDay w)
{
System.out.println(w);
}
}
enum WeekDay
{
Monday(1),Tuesday(2),Wednesday(3);
private int weekValue;
private WeekDay(int weekValue)
{
this.weekValue = weekValue;
}
@Override
public String toString()
{
// TODO Auto-generated method stub
return String.valueOf(this.weekValue);
}
}
相关文章推荐
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- Java学习笔记21 枚举类型enum、Enu…
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- Java学习·变量类型
- c#学习笔记--数组、枚举、结构、值类型和引用类型
- java 控制流程 &枚举类型 enum 的用法 & 带标签的break语句 &continue语句
- scala学习手记4 - Java基本类型对应的scala类
- 高阶Java枚举类型enum使用详解
- 菜鸟的学习之路(1) —java 原生数据类型与引用类型
- 【java学习】数据类型
- JAVA入门基础--浅谈枚举Enum类型
- java学习笔记----枚举测试题
- Java的枚举类型使用方法详解
- Java学习笔记(1)——基本数据类型
- java学习笔记之 (各种数据类型的数组元素的默认值)
- Java sdut acm 1959 简单枚举类型——植物与颜色