java--包装类

java--包装类

一、为什么要有包装类

      Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类。

二、什么是包装类

      1、 包装类和基本数据类型的对应关系如下表所示:

    java--包装类

     2、包装类的构造方法   

把基本数据类型包装类除了 Character类之外,其他的7个都有两个构造方法



基本数据类型xx;  xx对应包装类的构造方法:
public  xx的包装类(xx x){}
public  xx的包装类(String x){}


这里传递的x值表示该包装类型对象的值;
Integer i = new Integer(17);//i  = 17
i  = new Integer("123");// i = 123

使用第二种构造方法可能会引发 类型转换异常;


Integer:凡是涉及到整数的操作,Integer类里都有相应的方法来处理;

Character类没有public  Character(String c){}


    3、Boolean包装类

        
Boolean b = new Boolean("tRuE");//除了true之外(不区分大小写),其他的默认都是false

static Boolean FALSE 
对应基值 false 的 Boolean 对象。 
static Boolean TRUE 
    对应基值 true 的 Boolean 对象。 

b = Boolean.FALSE;//FALSE == new  Boolean(false);

System.out.println("b= " + b);


    4、Integer包装类的二进制、八进制和十六进制装换

        Integer:
有3个静态的方法可以完成:
static String toBinaryString(int i) 
以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 
static String toHexString(int i) 
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 

static String toOctalString(int i) 

    5、装箱和拆箱

int  Integer
装箱: 把基本数据类型 --> 它所对应的包装类类型 
Integer i = new Integer(int value);


拆箱: 包装类类型   --> 它所对应的把基本数据类型
int i2  = i.intValue();


Java5开始提供了自动装箱和拆箱的功能;
自动装箱:  可以把一个基本数据类型的值直接赋给 其包装类对象
Integer age = 17;


Object就可以接受一切类型了;  Object o = false;  o = 123;

自动拆箱:  可以把一个包装类对象直接赋给一个基本数据类型的变量

int age2  = age;