Java编程思想第四版——工作心得

所有的问题,我都希望能从书本中找到理论的支撑。我的学习方法,爱读书!

 

因为一些小问题,导致编译失败,真的是很操蛋的心情。从c++转到java,有个心得就是,能多做点就多做点,否则编译器给你报错误。

1, 局部变量没有初始化导致编译错误。

String file ;

如果后面使用了file的话,而file又没有初始化。则就会报:

error: variable file might not have been initialized.

尤其是一个大工程,好不容易编译完一次,整这么个错误,真想摔键盘了。

理论出处:《Java编程思想》P24,2.2.3 Java中的数组

使用任何引用,必须为其指定一个对象;如果试图使用一个还是null的引用,运行时将会报错。使用前!!!!

java为了提高代码安全性,规定:
1,在类中定义的成员变量如果你没有初始化java会自动帮你初始化,如果变量是数字会自动初始化成 0,变量是字符会初始化成 'a', 变量是对象引用会初始化成 null, 变量是布尔型,则自动初始化成 false.
2,如果你定义的是以后要用到的(要从那里提取数值的)局部变量,那就必须在声明的时候就初始化,否则编译会报错。

 

2,enum和switch的搭配

参考《java编程思想》 P593 19,3 switch 语句中的enum

public enum Color{
    RED,
    GREEN,
    BLUE}

public void change(Color cl){
    switch(cl){
    //Note that you don't have to say Color.RED
    //in the case statement:
    case RED:
        cl = Color.GREEN;
        break;
    case GREEN:
        cl = Color.BLUE;
        break;
    case BLUE:
        cl = Color.RED;
        break;
    }
}

case Color.RED:  这么写就错了。

编译错误:

enum switch case label must be the unqualified name of an enumeration constant. 

在switch 的case 标签里必须使用 枚举常量的非限定名。为啥?语法?

 

你可能感兴趣的:(Java基础)