黑马程序员技术交流社区

标题: 谁能给我总结下 拆箱跟装箱 [打印本页]

作者: 王盛    时间: 2013-6-16 17:54
标题: 谁能给我总结下 拆箱跟装箱
本帖最后由 王盛 于 2013-6-16 20:12 编辑

谁能给我总结下 拆箱跟装箱
作者: 无__畏    时间: 2013-6-16 18:01
装箱是:容许将值类型作为引用类型(比如:对象)进行处理的过程,而拆箱是允许将引用作为值类型的进行处理的过程.
比如:
int num=100;
object obj=num;
Console.WriteLine("对象的值={0}",obj);
int变量 num 的值被负给object的变量obj.将值类型转换为引用类型就叫装相.

int num=100;
object obj=num;
int num=(int)obj;
Console.WriteLine("num:{0}",num);
将num的值副给obj对象时,不需要进行显示装相,系统将自动装箱.
作者: 高腾    时间: 2013-6-16 18:09
装箱就是隐式的将一个值型转换为引用型对象。
比如:int i=0; Syste.Object obj=i; 这个过程就是将i装箱!

拆箱就是将一个引用型对象转化成任意值。          
比如:int i=0; Syste.Object obj=i; int j=(int)obj; 这个过程的前两句就是将i装箱,后        一句将obj拆箱!

换句话说:装箱拆箱过程就是将int值类型隐式转换为object类型 或者将object类型显示转换为int值类型
作者: 王盛    时间: 2013-6-16 18:29
好的 谢谢~!
作者: 王洪磊    时间: 2013-6-16 19:20
比如说声明一个int类型的数据:
int i=2;你此时想把int转换成String类型
但是int又没有什么方法可以用!这时你就可以把i封装成一个int对应的包装类,也就是装箱new Integer(i).toString()就可以把它转换成String类型了,当然你可以用i+""也可以搞定,没必要那么麻烦!
但是你装箱之后,这个类提供了大量的方法供你使用,比如获取int值对应的二进制是什么??等等很多,这就是装箱的好处!
还有拆箱比如说:
        String s="2";
        int i=new Integer(s);
这个是拆箱,比如你要用s和数值类型判断时你是不是需要拆箱,要不你没法比较,只有转换过后才可以比较if(i>10)

当然这只是举些小例子,你随着学习的深入可以慢慢体会的到,到时候你慢慢感受一下他们的应用场合
作者: 王盛    时间: 2013-6-16 20:11
嗯懂了 ~!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2