public enum GetWheels{
ONE_WHEEL,TWO_WHEELS,THREE_WHEELS;
}
class Cycle{
public void wheel(GetWheels g){
System.out.println("Cycle.wheel() "+g);
}
}
import static will.Print.*;
class Unicycle extends Cycle{
public void wheel(GetWheels g){
print("Unicyle.wheel() "+g);
}
}
class Bicycle extends Cycle{
public void wheel(GetWheels g){
print("Bicycle.wheel() "+g);
}
}
class Tricycle extends Cycle{
public void wheel(GetWheels g){
print("Tricycle.wheel() "+g);
}
}
public class RideCycle{
public static void ride(Cycle c,int i){
switch(i){
case 1: c.wheel(GetWheels.ONE_WHEEL);
break;
case 2: c.wheel(GetWheels.TWO_WHEELS);
break;
case 3: c.wheel(GetWheels.THREE_WHEELS);
break;
default: print("No cycle here");
}
}
public static void main(String[] args){
Unicycle one = new Unicycle();
Bicycle two = new Bicycle();
Tricycle three = new Tricycle();
ride(one,1);
ride(two,2);
ride(three,3);
}
}
可以考虑用设计模式重构这段代码,解决switch分支过多的问题可以使用状态模式。
参考http://blog.csdn.net/hguisu/article/details/7557252。
祝好!
可以使用values方法!
enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang. Comparable两个接口。所有枚举类都提供了一个values方法,该方法可以很方便地遍历所有的枚举值。
下面是完整代码:
1.Wheels.java
public enum Wheels
{
FIRST_WHEEL,SECOD_WHEEL,THIRD_WHEEL,FOURTH_WHEEL;
}
2.WheelTest.java
public class WheelTest
{
public static void main(String[] args)
{
Wheels[] ws=Wheels.values();
for (Wheels w : ws)
{
System.out.println(w);
}
}
}
详细教程可以关注我的博客!