java语言是面向对象的语言,但是java中的基本数据类型却不是面向对象的,因此在设计类时为每一个基本数据类型设计一个对应的类进行代表,这些对应的类叫做包装类(wrapper class)
包装类位于java.lang包中
基本类型 | 包装类型 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
对于包装类说,这些类的用途主要包含两种:
a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
(1)带有基本值参数并创建包装类对象的构造函数.如可以利用Integer包装类创建对象,Integer obj=new Integer(145);
(2)带有字符串参数并创建包装类对象的构造函数.如new Integer("-45.36");
(3)生成字符串表示法的toString()方法,如obj.toString().
(4)对同一个类的两个对象进行比较的equals()方法,如obj1.eauqls(obj2);
(5)生成哈稀表代码的hashCode方法,如obj.hasCode();
(6)将字符串转换为基本值的 parseType方法,如Integer.parseInt(args[0]);
(7)可生成对象基本值的typeValue方法,如obj.intValue();
实现int和Integer类之间的转换
在实际转换时,使用Integer类的构造方法和Integer类内部的intValue方法实现这些类型之间的相互转换,实现的代码如下: int n = 10; Integer in = new Integer(100); //将int类型转换为Integer类型 Integer in1 = new Integer(n); //将Integer类型的对象转换为int类型 int m = in.intValue(); |
包装类的自动装箱和自动拆箱
装箱:把基本数据类型用相应的引用类型包起来,使他们具有对象的特质
拆箱就是讲引用类型从新简化为基本类型
自动装箱的过程:每当需要一种类型的对象时,基本类型就自动的包装到与它对应的相同类型的包装中
如: Integer i=100;
自动拆箱过程:每当一刀一个值时,被装箱对象的值就会被自动的提取出来,没要去调用intValue()方法
如: int i=11;
Integer j=i; //自动装箱
int k=j; //自动改拆箱