//定义一个枚举类 public enum Week { MON,TUE,WED,THU,FRI,SAT,SUN }
//遍历枚举类中的常量 public class EnumList { public static void main(String[] args) { Week[] days = Week.values();// 把一个enum转换成一个enum类型的数组 for (Week d : days) { System.out.println(d); } } }
//枚举类型的使用举例 public class EnumTest { public static void main(String[] args) { EnumTest et=new EnumTest(); et.work(Week.SUN); } public void work(Week day) { if(day.equals(Week.SAT)){ System.out.println("购物!"); }else if(day.equals(Week.SUN)){ System.out.println("祈祷!"); }else{ System.out.println("工作!"); } } }
//这个例子与EnumTest例子的一些区别(在常量前加与不加Week的区别) public class EnumInSwitchTest { public static void main(String[] args) { EnumInSwitchTest e = new EnumInSwitchTest(); e.work(Week.FRI); } public void work(Week day) { // bity,char,int,枚举类型,对象类型 switch (day) { case MON: case THU: case WED: case TUE: case FRI: System.out.println("工作!"); break; case SAT: System.out.println("购物!"); break; case SUN: System.out.println("祈祷!"); break; default: System.out.println("非法的日期!"); } } }
一.
当您使用“enum”定义枚举类型时,实质上您定义出來的类型继承自java.lang.Enum类型,
而每个枚举的成员其实就是您定义的枚举类型的一個实例(Instance),他们都被预设为final,当然最重要的,它們都是公开的(public)。
//枚举使用 public class EnumTest { public static void doOp(OpConstant opContant) { switch (opContant) { case TURN_LEFT: System.out.println("向左转"); break; case TURN_RIGHT: System.out.println("向右转"); break; case SHOOT: System.out.println("射击"); break; default: System.out.println("错误"); } } public static void main(String[] args) { doOp(OpConstant.SHOOT); } } enum OpConstant { TURN_LEFT, TURN_RIGHT, SHOOT //每一元素是一个OpContant类型的实例 }
二.
静态导入:
要使用静态成员(方法和变量)我们必须给出提供这个静态成员的类。不过,过度使用这个特性也会一定程度上降低代码的可读性
package com.test.common; public class MyCommon { public static final String NAME="hello world"; public static int add(int a,int b){ return a+b; } }
//静态导入的举例 import static com.test.common.MyCommon.*; public class StaticImport { public static void main(String[] args) { System.out.println(NAME); System.out.println(add(1,2)); } }
三.
可变参数:
可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是方法声明中的最后一个参数
//可变参数的使用举例 public class TestVarargs { private static int sum(String str,int...nums){ System.out.println(str); int sum=0; for(int num:nums){ sum+=num; } return sum; } public static void main(String[] args) { System.out.println(sum("abc",1,2)); System.out.println(sum("abc",1,2,3)); System.out.println(sum("abc",1,2,3,4)); } }
补充知识:
Enumeration接口
java.util.Enumeration接口作用与Iterator接口类似,