欢迎来到天天文库
浏览记录
ID:41714928
大小:206.62 KB
页数:43页
时间:2019-08-30
《本班总结的课件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、包装类Xjava是面向对象的语言,面向对象的语言中类应该是一等公民,但是java仍然保留了8个基本数据类型,这主要是考虑结构化编程的习惯。这8个基本数据类型止是java唯一不面向对彖之处。因为基本数据类型不具备“对彖''的特性:没有属性、也没有行为方式。X但是这8个基本数据类型也给我们的编程带来了方便之处,可以简单、有效的进行常规数据处理。X在java中是以类为基础的,如果有一个方法需要Object类型的参数,但是我们能够提供的却只能是2,3等数值,这就比较难以处理。X为了解决8个基本数据类型不能当成Object
2、类型来使用的问题,java提供了包装类(WrapperClass),为8个基本数据类型分别定义了相应的引用类型,称之为基本数据类型的包装类。基本数据类型包装类byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBooleanX将基本数据类型包装成包装类是通过对应包装类的构造方法來实现的。X除了Character夕卜,其他儿个包装类还可以通过传入一个字符串参数来构建包装类对象。例如:XInteger(intval
3、ue)构造一个新分配的Integer对象,它表示指定的int值。Integer(Strings)构造一个新分配的Integer对象,它表示String参数所指示的int值。X但是在使用字符串构造一个数值类型的对象的时候需要特别注意。如booleanb=true;//定义基本数据类型boolean变量BooleanbO=newBoolean(b);//通过Boolean的构造方法来构造Boolean对象inti=5;//定义基本数据类型int变量IntegeriO=newInteger(i);//通过Integer
4、的构造方法来构造Integer对象FloatfO=newFloat(4.5);//通过Float的构造方法构造Float对象FloatfOO=newFloat(“4.5“);〃给Float的构造方法传入字符串参数BooleanbOO=newBoolean("true");//给Boolean对象传入字符串参数"true"Booleanb002=newBoolean(Mfalsen);//给Boolean对象传入字符串参数"false"BooleanbOO3=newBooleanC'abcdefg");//给Boo
5、lean对象传入字符串参数“nbcdefg”DoubledO=newDouble(Mabcdefgn);//给Long对象传入字符串参数"abcdefg"上诉代码运行分析X上述代码编译时顺利通过,因为包装类里确实提供了一个包含字符串参数的构造方法,而运行时发现,Long10=newLong(“abcdefg”);这一行出现了异常,类型为java.lang.NumberFormatException(数值格式化界常),意思是说abcdefg这个字符串没有办法格式化成为一个合适的long型数值。X这就告诉我们,即使我
6、们可以用字符串来直接初始化一个包装类对彖,但是这个字符串必须是有条件的,是能够转换成为一个该包装类对应的基本数据类型的数值才可以,否则将发生运行时异常。X值得注意的是:对于Boolean型来说,传入的字符串随意性较强,只要是“true"的任意大小写字母的结合,都将被创建true对应的Boolean型对象,如果传入其他的字符串,不论是否是“false”或者其大小写字母组合,都将创建false对应的Boolean型对象。X如果希望获得包装类对象中包含的基本类型变量,可以使用包装类提供的xxxValueO方法,例如:b
7、ooleanb=newBoolean(<4sfsa^).booleanValue();或者inti=newInteger(20).intValue();等。X由上面的经验,我们一定认为基本类型变量和包装类対象之间的转换很麻烦,但是从jdkl.5之后,这种情况得到改善,因为jdkl.5提供了自动装箱(AutoBoxing)和自动拆箱(AutoUnboxing)功能。所谓自动装箱,就是可以把一个基本类型变量直接赋给对应的包装类对彖;自动装箱则正好相反,允许直接把包装类对彖赋给一个对应的基本类型变量。X虽然自动拆箱和自
8、动装箱大大方便了程序员,但是要注意这两个过程必须类型兀配,就是说Integer类型对象只能拆箱为int型的变量,不要试图拆成boolean型。与之对应,int类型的变量也只能自动装箱为Integer类对象,而非其他类型。包装类中字符串和基本类型变量转换除了Character之夕卜,所有的包装类都提供了一个parseXxx(Strings)方法,用于将-一个特定字符串转换成
此文档下载收益归作者所有