找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 398|回复: 1

[java]关于枚举

[复制链接]
发表于 2008-8-17 02:23:11 | 显示全部楼层 |阅读模式

关于枚举
永远不能直接调用过一个枚举构造函数.
可以为构造函数定义多个参数,并且可以重载枚举构造函数,就像可以重载一个正常的类构造函数一样.
枚举指定了一个常量值列表,它们可以赋予某个特殊类型.
枚举不是String或int;枚举常量的类型是枚举类型.
枚举可在类外部或内部声明,但不能在方法中声明.
声明在类外部的枚举不能被标识为static\fianl\abstract\protected\private.
枚举可以包含构造函数\方法\变量和常量类体.
枚举常量可以使用语法BIG(8)把参数传递给枚举构造函数,其中把int型字面值8传递给枚举构造函数.
枚举构造函数可以带有参数,并且可以重载.
永远不能直接在代码中调用枚举构造函数.它们总是在初始化枚举时自动调用的.
枚举声明的末尾可以选择加分号.

public class TestEnum {
 public static void main(String[] args) {
  AllColor ac = AllColor.Red;
  AllColor[] acs =AllColor.values();
  ac.setName("red");
  System.out.println(ac.getName());
  System.out.println(ac.getClass());
  ac.test();
  //ac.test1();//只能调用ENUM里的方法,如果是抽象方法,必学实现后才能调用。
 }
}

enum AllColor {
 // Red,Green,Blue;
 Red("a") {//是AllColor的实现类
  public void test() {
   System.out.println("red");
  }
  public void test1() {
   System.out.println("red1");
  }
 },
 Green("a") {
  public void test() {
   System.out.println("Green");
  }
 },
 Blue("a") {// 是AllColor的实现类,这里的类会调用匹配的构造器,如果没有匹配的构造器就会报错。
  public void test() {
   System.out.println("Blue");
  }
 };
 AllColor(String name) {
  this.name = name;
 }

 private String name;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
 abstract void test();
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表