Java语法的一些小细节

小细节!!!

private static int TYPE_ONE = 1;
private static int TYPE_TWO = 2;
private static int TYPE_THREE = 3;

main() {
     int type = 2;
     switch (type) {
            case TYPE_ONE:
                   //do something
                   break;
            case TYPE_TWO:
                   //do something
                   break;
            case TYPE_THREE:
                   //do something
                   break;
      }

}

 该代码中会存在编译错误!

原因case后面需要的是一个Constant的常量,而TYPE_ONE不是一个final

 

 

 

main() {
     int type = 1;
     switch (type) {
          case 1:
               boolean isSuccess = false;
               //do something
               break;
          case 2:
               boolean isSuccess = true;
               //do something
               break;
     }

}

该代码中会存在编译错误!

原因在一个switch语句中所有的case都是在同一个local variable中,这里isSuccess存在重复定义!如果在每个case加一个{},则不会出现这个问题

 

Java方法中参数使用final修饰

1、对于参数类型是基本类型的时候,因为传参是传值,故是否加上final修饰都一样

2、对于参数类型是Object的时候,增加了final,则代表该对象obj是不可改变的,即在编译期能够对obj = new Object()进行错误检验,从而保证obj这个引用不会被重新引用到其他对象去,即某种意义上的对象不变!

3、方法里面存在嵌套类等,如要用一些变量,这些都需要时final修饰。这个基于嵌套类外该变量是final,嵌套类里面也会做隐含动作将其作为一个final的成员变量,故两个fianl变量之间传递,都不会发生对象的改变,故通过final修饰的对象不变地应用到嵌套类中

参考链接http://blog.youkuaiyun.com/tavor/archive/2007/12/06/1920336.aspx

 

 

Java访问控制符

public: 外部包可以访问

缺省(包访问性):同一个包下面的才可以访问

protected: 不同包的该类子类可以访问, 【同一个包下面的可以访问(没有注意到的地方)】

private:本类访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值