枚举,里面的值就是枚举类型的,枚举里面也是可以定义main方法的.我们所定义的每个枚举类型都继承自java.lang.Enum类,枚举中的每个成员默认都是public static final的。
public enum Color{Red,White,Blue,Blace}表明Color这个枚举类型它有四个对象,而且只有四个,在编译的时候就已经确定好的了.我们不能在运行的时候又去产生出新的枚举对象.
我们所定义的每个枚举类型都继承自java.lang.Enum类,它也可以有成员变量,有构造方法,而在编译的时候就已经确定好的了,那如何传,就用penny("hello"),nickel("world")这样去传.即在枚举里面它所定义的对象就是它的实例.它不像普通类一样可以随便生成对象的.
举例代码如下:
public enum Coin
{
penny("hello"), nickel("world"), dime("welcome"), quarter("hello world");//这个还必须写到最前面
private String value;
public String getValue()
{
return value;
}
Coin(String value)//构造方法,它里面的参数如何传?因为对象是编译的时候就已经确定好了的,所以要用上面的那几个对象
{
this.value = value;
}
public static void main(String[] args)
{
Coin coin = Coin.quarter;//你不能够在这里给他传一个参数,只能用它本来在编译的时候就已经确定好的实例
System.out.println(coin.getValue());
}
}
EnumSet与EnumMap
enum FontConstant
{
Plain, Bold, Italilc, Hello
}
public class EnumSetDemo
{
public static void main(String[] args)
{
EnumSet<FontConstant> enumSet = EnumSet.of(FontConstant.Plain);//注意的是它加入set的方式和其他set是不一样的.
showEnumSet(enumSet);
System.out.println("-------");
showEnumSet(EnumSet.complementOf(enumSet));
}
public static void showEnumSet(EnumSet<FontConstant> enumSet)
{
for(Iterator<FontConstant> iter = enumSet.iterator(); iter.hasNext();)
{
System.out.println(iter.next());//如果加入了所有的实例,遍历的时候出现的顺序是跟在枚举里面他声明的那些对象出现的顺序是一样的.在这里会打印出plain,Bold,Italilc,Hello以这种顺序打印出来
}
}
}
静态导入:
a) import static com.shengsiyuan.common.Common.Age;
b) import static com.shengsiyuan.common.Common.output;
8. 表示导入Common类中的静态成员变量AGE以及静态方法output。注意:使用import static时,要一直导入到类中的静态成员变量或静态方法。