2019.9.16日动手动脑作业

一、枚举类型

(1)题目

 

 (2)源代码

package class;

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};

(3)运行结果

 

 

(4)分析

  s 和 t 进行 == 运算,输出为false,说明两者引用的不是同一对象。

  isPrimitive()函数表明 s 不是原始类型(boolean、char、byte、short、int、long、float、double)。

  s 和 u 进行 == 运算,输出为true,说明两者都是指向了同一地址。

(5)结论

  枚举类型中的各个参数都为常量,引用的时候都会引向常量的地址而不是某个对象的地址。

 

二、TestDouble

(1)题目

 

 

 

 

 

 

 

(2)源代码

package class;
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));
    }

(3)运行结果

(4)分析

 该结果说明了浮点数的运算是不精确的,如果要进行高精度的浮点数运算应该使用BigDecimal类。

 

三、字符串输出

(1)题目

 

 (2)源代码

package class;

public class TestStringAdd {
    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");
    }
}

(3)输出结果

(4)分析

第一次输出是输出了字符串“X+Y=”后接着连续输出了X和Y的值,即将X和Y变为了字符串。

而第二次输出则是X和Y的值的和以及字符串的内容。

(5)结论

在进行运算时,如果字符串在前,那么在字符串后的内容都会变成字符串。

 

四、同名屏蔽

局部变量和全局变量(静态变量)同名时会优先使用局部变量,而如果想要使用全局变量,则需要加上 类名. 来使用。

代码:

public class Bianliang {
    static int n=5;
    public static void main(String[] args) {
        int n = 6;
        System.out.println(n);
    }
}

结果:为6

如果在n前加上 Bianliang.  后结果为:5

 

五、JAVA中的类型转换

可以看到,当前变量与异类变量相加的时候,数据类型所占位数小的会自动变为所占位数多的数据类型。

 

posted @ 2019-09-16 22:39  Nevesettle  阅读(142)  评论(0编辑  收藏  举报