java高级特性之--自动拆装箱和枚举

自动装箱和拆箱

  • 有时需要将int这样的基本类型转换为引用类型对象
  • 基本数据类型的自动装箱、拆箱是J2SE 5.0提供的新功能,为打包基本数据类型提供了方便,但提供方便的同时隐藏了细节,建议在能够区分基本数据类型和引用数据类型的差别时在使用。
  • 一个自动装箱的例子:

    Integer i = 10;
    //相当于 
    Integer i = new Integer(10);
    • 进行编译时,编译器是根据语句上下文判断是否进行自动装箱动作。在上例中变量i引用的是Integer类的实例。
    • 同样的动作适合用于boolean ,byte,short,char,long,float,double,等基本数据类型,分别使用对应的包装类型(Wrapper Types)Boolean,Byte,Short,Character,Long,Float,Double
  • J2SE 5.0 中也可自动拆箱(unboxing),也就是对象中的基本数据类型信息自动取出

    • 例如:

      Integer i = 10;
      int n = i;//相当于 int i= m.intValue();
      /*
          i变量在自动装箱为Integer的实例后,如果被赋值给一个int类型的变量n,则自动转换为int类型再赋值。
      */
      //在运算时,也可进行拆箱与装箱,如:
      Integer m = 10;
      System.out.println(m+10);
      System.out.prinltn(m++);

枚举类型

public enum Color{
    RED,BLUE,BLACK,YELLOW,GREEN
}
//enum 很像特殊的class,实际上enum声明定义类型就是一个类
//这些类都是类库中Enum类的子类(java.lang.Enum<E>),它们继承了
//Enum中许多有用的方法
  • 枚举值都是public static final 的,也就是常量,因此枚举类中的枚举值应全部大写
  • 枚举类型都是class,在枚举类型中有构造器,方法和字段。但枚举的构造器有很大不同:
    • 构造器只是在构造枚举值时被调用
    • 构造器私有,不允许有public 构造器
    • 枚举可以在switch语句中使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值