黑马程序员技术交流社区

标题: 包装类中的装箱和拆箱怎样理解? [打印本页]

作者: Hello_Boys    时间: 2014-12-17 09:13
标题: 包装类中的装箱和拆箱怎样理解?
包装类中的装箱和拆箱怎样理解?
作者: 张周飞    时间: 2014-12-17 09:38
本帖最后由 张周飞 于 2014-12-17 09:41 编辑

1:拆箱是把“引用”类型  转换成    “值”类型;
    装箱就是把基础类型封装成一个类。比如把int封装成Integer,这时你就不能把他当成一个数了,而是一个类了,对他的操作就需要用它的方法了。
2:装箱是把“值”类型     转换成    “引用类型;
     拆箱就是把类转换成基础类型。比如你算个加法什么的是不能用类的,就得把它转换成基本类型,jdk5以后已经可以自动转换了貌似。基本类型你应该懂的吧,就那八种
      有时某些方法的参数要求使用“引用”类型,而你想把“值”类型的变量通过这个参数传入,就需要使用这个操作。
      我知道和C#.NET里的概念是一样的

一个是包装类,一个是数据类型,这是面向对象思想的产物,一切皆对象,所以数据也可以是对象,这就产生了java中自动装箱和拆卸功能,装箱就是将数据类型定义的变量转换为包装类,拆箱将类转换为数据类型定义的数据,。。。。。。,希望可以有助于你的理解

int是基本数据类型,integer是包装类,属于引用类型,可以创建对象
:在集合中定义的泛型  只能是对象!!包装类 就是可以创建对象 ,基本数据类型不可以!!!
作者: 金福林    时间: 2014-12-17 09:53
就是类型转换嘛,想那么难干什么
作者: 南柯一梦境    时间: 2014-12-17 10:05
其实这个我也不太明白,学习了,感谢
作者: edidada    时间: 2014-12-17 23:42
我个人是这样理解的
包装类以Integer为例,数据类型以int为例
编程语言以前不是面向对象的,数据的类型有int等等
编程语言发展到拥有面向对象的特性后,将数据类型也演进成了对象 int->integer
个人笼统的认为,Integer比int高级,Integer有很多方法来操作,而int没有
作者: 我只是一只菜鸟    时间: 2014-12-18 12:11
看评论学习了
作者: jxlovqqvo    时间: 2014-12-18 13:44
装箱就是把一个基本数据类型封装成类,拆箱就是把这个类用自己带的方法把基本数据类型的值在给你,只不过这些都是自动完成的,不需要你手动去操作
作者: duluhua    时间: 2014-12-18 20:21
我的理解是,数据类型间的转换。
1.数据类型分为基本数据类型和引用数据类型。
2.而基本数据类型一般都有其对应的应用数据类型。比如
   基本数据类型    int   对应的是引用数据类型是 Integer
   基本数据类型    long  对应的引用数据类型是   Long
  。。。。。。
3.装箱应该就是把基本数据类型转为引用数据类型,比如把int转为Integer
拆箱的话,应该是相反的过程,如把Integer转为int
4.在Java中实现了拆箱和装箱的自动转换,比如  你可以写Integer i = 1;  因为1是int基本数据类型,而i是Integer引用数据类型,Integer i= 1;就自动把int转为Integer了。
5.主要是基本数据类型和引用数据类型的应用场景是不一样的。基本数据类型就是单一的一个值,而引用数据类型就是一个对象了,对于对象,我们 可以使用对象的方法和属性
6.感觉应该就是这些区别吧




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