1.5.2.1_基本数据类型的包装类.pptx
文本预览下载声明
Java 基础篇JAVA是面向对象的编程语言,包含了8种基本数据类型,这8个基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有属性,方法可以被调用。JAVA之所以提供这8种基本数据类型,主要是为了照顾程序员传统的习惯。为了解决8个基本数据类型的变量不能当成Object类型变量使用的问题,JAVA提供了包装类(Wrapper?Class)的概念,为了8个基本数据类型分别定义了相应的引用类型,并称之为基本数据类型的包装类。基本数据类型和包装类的对应除了int和char两个有点例外之外,8个基本类型对应的包装类都是将其首字母大写即可。基本数据类型包装类byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean基本数据类型转包装类把基本数据类型变量包装成包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个包装类中除了Character之外,还可以通过传入一个字符串参数来构建包装类对象。?当试图使用一个字符串来创建Byte?,Short?,Integer,Long,Float,和Double等包装类对象时,如果传入的字符串不能成功转换成对应基本类型变量,则会引发java.lang.NumberFormatException异常。如果试图使用一个字符串来创建Boolean对象时,如果传入的字符串是“true”,或此字符串不同字母的大小写变化形式【不区分大小写】,如True,都将创建true对应的Boolean对象;如果传入其他字符串,则会创建false对应的Boolean对象。包装类转基本数据类型通过包装类对象中包装的基本类型变量,可以使用包装类提供的xxxValue()实例的方法,by.byteValue()sh.shortValue();it.intValue();l.longValue();ch.charValue();fl.floatValue();b1.booleanValue();基本类型变量和包装类对象之间的转换关系通过new WrapperClass(primitive)创建 基本类型变量包装类对象通过WrapperInstance.xxxValue()方法自动装箱和自动拆箱从上图中我们可以看出:JAVA提供的基本类型变量和包装类对象之间转换有点繁琐,但从JDK1.5之后就清除了,JDK1.5提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能,自动装箱:可以把一个基本类型变量直接赋给对应的包装类变量,或者赋给Object变量(Objectj?是所有类的父类,子类对象可直接赋给父类变量)。自动拆箱:与之相反,直接把包装类对象直接赋给一个对应的基本类型变量。当JDK提供了自动装箱和自动拆箱后,大大简化了基本类型变量和包装类对象之间的转换过程。值得指出的是,进行自动装箱和自动拆箱时必须注意类型匹配,例如Integer只能自动拆箱成int类型的变量,不要试图拆箱成boolean类型的变量;与之在似的是,Int类型的变量只能自动装箱成Integer对象(即使赋给Object类型的变量,那只是利用了JAVA的向上自动转型特性),不要试图装箱Boolean对象。?包装类还可实现基本类型变量和字符串之音的转换,除了Character之外的包装类都提供了一个parsexxx(String?s)静态方法,用于将一个特定字符串转换成基本类型变量;除此之外,在String类里也提供了多个重载valueOf()方法,用于将基本类型变量转换成字符串,如果希望把基本类型变量转换成字符串,还有一种更简单的方法:将基本类型变量和”进行连接运算,系统会自动把基本类型变量转成字符串。
显示全部