java里有枚举类型吗?如何定义?

孤尽JavaSea 2009-03-09 10:38:22
不是typedef吧
...全文
737 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyangxiaokang6 2009-03-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 Java_gannbare 的帖子:]
不是typedef吧
[/Quote]
enum COLOR{RED,GREEN}
zq620901 2009-03-09
  • 打赏
  • 举报
回复
只是知道 有 但是没有用过
yangkaixin1226 2009-03-09
  • 打赏
  • 举报
回复

Java 5.0新引进了一种类型:枚举类型。
给楼主举个小例子吧
1、定义一个功能简单的枚举类型,更定义一个简单的类很相似,例如
package basic;
public enum Day
{
MONDAY, TUESDAT, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

* 跟类定义一样,枚举类型可以单独放在一个文件里,当一个枚举类型用public修饰时,它对其他包可见,否则只对同一个包中的类可见,这和类定义是一样的。
* 标识符 MONDAY, TUESDAY等就称为枚举常量(enumeration constants)
* 每一个枚举常量被隐式的声明成Day的一个public、static成员,而且其类型为Day,亦就是说这些常量是self-typed的
dreamhunter_lan 2009-03-09
  • 打赏
  • 举报
回复
有enum的
只是Java Tutorial上的一个例子,希望有助于你理解

public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}


public class EnumTest {
Day day;

public EnumTest(Day day) {
this.day = day;
}

public void tellItLikeItIs() {
switch (day) {
case MONDAY: System.out.println("Mondays are bad.");
break;

case FRIDAY: System.out.println("Fridays are better.");
break;

case SATURDAY:
case SUNDAY: System.out.println("Weekends are best.");
break;

default: System.out.println("Midweek days are so-so.");
break;
}
}

public static void main(String[] args) {
EnumTest firstDay = new EnumTest(Day.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(Day.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(Day.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(Day.SUNDAY);
seventhDay.tellItLikeItIs();


}
}
  • 打赏
  • 举报
回复
可以,JDK 1.5 开始在语法上支持枚举,JDK 1.5 以下版本可以采用其他的方式。

实际上两种方法在经编译器编译之后的 JVM 指令都是类似的,JDK 1.5 的枚举只不是增加了一颗语法糖罢了。
Alien 2009-03-09
  • 打赏
  • 举报
回复
只有集成的Enumeration类,这就是枚举类型,不过是复合数据类型了,需要产生实例才行

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧