A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王盛 中级黑马   /  2013-6-16 17:54  /  1086 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王盛 于 2013-6-16 20:12 编辑

谁能给我总结下 拆箱跟装箱

5 个回复

倒序浏览
装箱是:容许将值类型作为引用类型(比如:对象)进行处理的过程,而拆箱是允许将引用作为值类型的进行处理的过程.
比如:
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对象时,不需要进行显示装相,系统将自动装箱.
回复 使用道具 举报
装箱就是隐式的将一个值型转换为引用型对象。
比如: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值类型
回复 使用道具 举报
好的 谢谢~!
回复 使用道具 举报
比如说声明一个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)

当然这只是举些小例子,你随着学习的深入可以慢慢体会的到,到时候你慢慢感受一下他们的应用场合
回复 使用道具 举报
嗯懂了 ~!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马