java包装类拆箱和装箱详解

java包装类拆箱和装箱详解

ID:15367662

大小:22.56 KB

页数:4页

时间:2018-08-02

java包装类拆箱和装箱详解_第1页
java包装类拆箱和装箱详解_第2页
java包装类拆箱和装箱详解_第3页
java包装类拆箱和装箱详解_第4页
资源描述:

《java包装类拆箱和装箱详解》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Java包装类、拆箱和装箱详解虽然Java语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了Object类的特性,要转换为String类型(经常有这种需要)时只要简单调用Object类中定义的toString()即可,而基本数据类型转换为String类型则要麻烦得多。为解决此类问题,Ja

2、va为每种基本数据类型分别设计了对应的类,称之为包装类(WrapperClasses),也有教材称为外覆类或数据类型类。基本数据类型及对应的包装类基本数据类型对应的包装类byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean每个包装类的对象可以封装一个相应的基本类型的数据,并提供了其它一些有用的方法。包装类对象一经创建,其内容(所封装的基本类型数据值)不可改变。基本类型和对应的包装类可以相互装换:·由基本类型向

3、对应的包装类转换称为装箱,例如把int包装成Integer类的对象;·包装类向对应的基本类型转换称为拆箱,例如把Integer类的对象重新简化为int。包装类的应用八个包装类的使用比较相似,下面是常见的应用场景。1)实现int和Integer的相互转换可以通过Integer类的构造方法将int装箱,通过Integer类的intValue方法将Integer拆箱。例如:1.publicclassDemo{2.publicstaticvoidmain(String[]args){3.intm=500;4.Integerobj=n

4、ewInteger(m);//手动装箱5.intn=obj.intValue();//手动拆箱6.System.out.println("n="+n);7.8.Integerobj1=newInteger(500);9.System.out.println("obj等价于obj1?"+obj.equals(obj1));10.}11.}运行结果:n=500obj等价于obj1?true2)将字符串转换为整数Integer类有一个静态的paseInt()方法,可以将字符串转换为整数,语法为:1.parseInt(Strings

5、,intradix);s为要转换的字符串,radix为进制,可选,默认为十进制。下面的代码将会告诉你什么样的字符串可以转换为整数:1.publicclassDemo{2.publicstaticvoidmain(String[]args){3.Stringstr[]={"123","123abc","abc123","abcxyz"};4.5.for(Stringstr1:str){6.try{7.intm=Integer.parseInt(str1,10);8.System.out.println(str1+"可以转换为整

6、数"+m);9.}catch(Exceptione){10.System.out.println(str1+"无法转换为整数");11.}12.}13.}14.}运行结果:123可以转换为整数123123abc无法转换为整数abc123无法转换为整数abcxyz无法转换为整数3)将整数转换为字符串Integer类有一个静态的toString()方法,可以将整数转换为字符串。例如:1.publicclassDemo{2.publicstaticvoidmain(String[]args){3.intm=500;4.String

7、s=Integer.toString(m);5.System.out.println("s="+s);6.}7.}运行结果:s=500自动拆箱和装箱上面的例子都需要手动实例化一个包装类,称为手动拆箱装箱。Java1.5(5.0)之前必须手动拆箱装箱。Java1.5之后可以自动拆箱装箱,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,这将大大方便程序员的代码书写。例如:1.publicclassDemo{2.publicstaticvoidmain(String[]args){3.intm=500;4.Integ

8、erobj=m;//自动装箱5.intn=obj;//自动拆箱6.System.out.println("n="+n);7.8.Integerobj1=500;9.System.out.println("obj等价于obj1?"+obj.equals(obj1));10.}11.}运行结果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。