本人初学JAVA,看的尚学堂马士兵的视频教程,有个例子很奇怪。
我记得switch() 可以使用
byte型 (1 byte),
char型 (2 bytes),
short型 (2 bytes),
int型 (4 bytes)但这个例子可以判断颜色,这如何解析?难道MyColor.red代表一个数值?那case green:呢源代码如下:public class TestEnum {
public enum MyColor { red, green, blue };
public enum MyDoorOpener {me, mywife};
public static void main(String[] args) {
MyColor m = MyColor.red;
switch(m) {
case red:
System.out.println("red");
break;
case green:
System.out.println("green");
break;
default:
System.out.println("default");
}
System.out.println(m);
}
}
我记得switch() 可以使用
byte型 (1 byte),
char型 (2 bytes),
short型 (2 bytes),
int型 (4 bytes)但这个例子可以判断颜色,这如何解析?难道MyColor.red代表一个数值?那case green:呢源代码如下:public class TestEnum {
public enum MyColor { red, green, blue };
public enum MyDoorOpener {me, mywife};
public static void main(String[] args) {
MyColor m = MyColor.red;
switch(m) {
case red:
System.out.println("red");
break;
case green:
System.out.println("green");
break;
default:
System.out.println("default");
}
System.out.println(m);
}
}
解决方案 »
- 如何多次读取socket的InputStream流
- 什么情况能用到管道通信PipedInputStream和PipedOutputStream.
- java如何在图片上增加热点 可链接
- db2 for as/400 数据插入问题 急!解决后立即揭帖!!!
- 【偶寻找 SUN JDK 1.2 ! 100 分相送!】
- 关于JOptionPane的showInputMessage的问题
- JBuilder的Extra怎么用啊?
- java中如何显式Free一个对象?
- 请问关于路径设置的问题
- 有谁知道tomcat中如何把访问:http://132.21.25.12/oa 配置为 http://132.21.25.12 就可以访问?多谢!
- 异常处理
- 关于文件流和过滤器的问题
你的例子中是的枚举类型。
public enum MyColor { red, green, blue }; 指定了枚举允许的值
lz看基础去吧
牧举类型的值默认就是int,而且从1开始,switch只能允许整数值。
如果:
enum Color{
red = "#ff0000";
green = "00ffff";
blue = "0000ff";
}
你case给我看看。
我看了JDK文档,发现枚举常量是有序数的,从0开始,
如上例用system.out.println(m.ordinal()) ,打印出来的值是0,不是从1开始。-------------
ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
同意,
public enum MyColor { red, green, blue }; 这句话实际上就是给red = 1; green = 2; blue = 3 ; 如果你一开始写 public enum MyColor { red, green = 20, blue };
那么 red = 1 , green = 20 , blue = 21 ;