一.
枚举定义
enum Size{SMALL,MEDIUM,LARGE};
定义了包含三个枚举常量的Size枚举类型。
主要测试逻辑
引用比较测试
java
Size s=Size.SMALL;
Size t=Size.LARGE;
System.out.println(s==t); // false
输出:false
原因:s和t引用不同的枚举常量对象
原始类型检查
System.out.println(s.getClass().isPrimitive()); // false
输出:false
原因:枚举不是原始数据类型,而是引用类型
字符串转换测试
Size u=Size.valueOf("SMALL");
System.out.println(s==u); // true
输出:true
原因:valueOf()方法返回的是同一个枚举常量对象
遍历所有值
for(Size value:Size.values()){
System.out.println(value);
输出:SMALL、MEDIUM、LARGE(每行一个)
values()方法返回枚举的所有常量数组
二、
根据代码分析,第一次输出结果为x+y=100200,第二次输出结果为300=x+y。
首先,运算符+作为加法运算符时优先级高于字符串操作的+。
因此输出结果是由于输出字符串时+的判断造成的。
第一次由于字符串在前,编译器判别输出的语句是几个相加的字符串,因此后续判别为字符串操作的+。
第二次输出先出现了两个变量相加,由于操作符优先级,编译器判别它为算数操作。
所以我们在编写代码时应该注意+的运算,避免造成输出错误,如若需输出x+y的值,我们可以在它们的外面加上括号。