第三讲课后作业

 Ixia阅读示例:EnumTest.java,运行它, 分析运行结果?你能得到什么结论?

源代码:

public class EnumTest {

public static void main(String[] args) {
Size s=Size.SMALL;
Size t=Size.LARGE;
//s和t引用同一个对象?
System.out.println(s==t); //
//是原始数据类型吗?
System.out.println(s.getClass().isPrimitive());
//从字符串中转换
Size u=Size.valueOf("SMALL");
System.out.println(s==u); //true
//列出它的所有值
for(Size value:Size.values()){
System.out.println(value);
}
}

}
enum Size{SMALL,MEDIUM,LARGE};

运行结果:

结论:

枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。
可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。

运行以下代码:TestDouble.java

源代码:

public class TestDouble {

public static void main(String args[]) {
System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
System.out.println("4.015 * 100 = " + (4.015 * 100));
System.out.println("123.3 / 100 = " + (123.3 / 100));
}
}

运行结果:

结论:

使用double类型的数值进行计算, 其结果是不精确的。

以下代码输出的结果是什么?

源代码:

public class Test1{

public static void main(String args[])
{
int X = 100;

int Y = 200;

System.out.println("X+Y="+X+Y);

System.out.println(X+Y+"=X+Y");
}
}

运行结果:

问什么会有这样的输出结果?

在System.out.println()中,如果在string字符串后面是+和变量,会把变量转换成string类型,加号在中间起连接作用,把两个字符串连接成一个新的字符串输出;如果先进行变量的加减运算,那么会先从左到右先计算变量的加减,然后再与后面的string结合成一个新的字符串。

原文地址:https://www.cnblogs.com/liulitianxia/p/5937440.html