《疯狂Java讲义精粹》读书笔记4 ---- 基本包装类

------------《疯狂Java讲义精粹》读书笔记5--------------

Java 是面向对象的语言,它既保留了8中基本数据类型,也提供了8中相对应的包装类(Wrapper Class):

 
基本数据类型byte       short      int  long       charfloat        double    boolean
对应的包装类ByteShortIntegerLongCharacterFloatDoubleBoolean

 8个包装类除了Character之外可以传入相应的值来初始化,也可以传入字符串初始化。

包装类对象和基本类型变量的转化关系如下:

下面用代码说明:

public class TestWrapper {
    public static void main(String[] args) {
        
        /**
         * 8个包装类除了Character之外可以传入相应的值来初始化,
         * 也可以传入字符创初始化。
         */
        double d = 0.5;
        String str = "123.4";
        Double doubleObj1 = new Double(66.6);//直接构建
        Double doubleObj2 = new Double(d);//传入对应类型的变量
        Double doubleObj3 = new Double("98.9");//传入正确的字符串
        Double doubleObj4 = new Double(str);//传入相应的字符串变量
        
        
        System.out.println(doubleObj1);
        System.out.println(doubleObj2);
        System.out.println(doubleObj3);
        System.out.println(doubleObj4);
        
        /**
         * 另外创建Boolean类时true 和 false的大小写不做区分
         */
        Boolean blObj = new Boolean("FALsE");
        System.out.println(blObj);
        
        /**
         * 如果希望获得包装类对象中包装的基本类型变量,可以使用包装类提供的
         * xxxValue()实例方法。
         */
        //取出doubleObj1中的基本类型变量
        System.out.println("\n--------------------");
        double d1 = doubleObj1.doubleValue();
        System.out.println(d1);
    }
}

输出结果为:

66.6
0.5
98.9
123.4
false


--------------------
66.6

 

  很明显这种转换的方式太复杂了,Java1.5之后提供了自动装箱(Autoboxing)自动拆箱(AutoUnboxing)功能,自动装箱可以把一个基本类型的变量直接赋给对应的包装类变量,或者赋给Object变量;自动拆箱可以把包装类型的对象赋给一个对应类型的基本变量。

  下面是一个例子:

/**
 * 自动装箱、拆箱
 * @author <<疯狂Java讲义精粹>>
 *
 */
public class TestAutoBoxingUnboxing {
    public static void main(String[] args) {
        //直接把一个基本类型的变量赋给integer对象
        Integer inObj = 5;
        
        //直接把一个boolean类型的变量赋给一个Object类型变量
        Object boolObj = true;
        
        //直接把一个Integer对象赋给int类型变量
        int in = inObj;
        
        if(boolObj instanceof Boolean){
            //先把Object对象强制转换成Boolean类型,再赋值给boolean变量
            boolean b = (Boolean)boolObj;
            System.out.println(b);
        }
        
    }
}

 

转载于:https://www.cnblogs.com/CocoonFan/archive/2013/03/06/2945342.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值