包装类
- 基本数据类型包装类的定义
- 数据的装箱和拆箱
- 数据类型的转换
- 基本数据类型包装类的定义
Java中的矛盾:在java中,其中心思想就是一切皆对象。但是,基本数据类型不是对象。为了符合这种设计模式,就出现了基本数据类型的包装类。
编号 | 基本数据类型 | 基本数据类型的包装类 |
1 | int | Integer |
2 | double | Double |
3 | long | Long |
4 | float | Float |
5 | char | Character |
6 | boolean | Boolean |
7 | short | Short |
8 | byte | Byte |
数值型包装类(number(object类的子类)类的子类):Integer、Double、 Long、Float、Short、 Byte
对象型包装类(object类的直接子类):Character、Boolean
- 拆箱与装箱
装箱:将基本数据类型转为包装类的形式;
-- 每个包装类的构造方法都可以接收各自数据类型的变量。
拆箱:从包装类中取出被包装的数据。
--- 从number类中提供的一系列的:xxxvalue()方法完成(在jdk1.5版本之前,无论是数值型包装类还是对象型包装类,都可以直接采用该方法取出数据。Jdk1.5之后,出现了自动装箱和自动拆箱)。
程序:int 与integer (对象数据类型)
public class TestDemo{
public static void main(String args[]){
Integer a = new Integer(10);//装箱
int b = a.intValue();//拆箱
System.out.println(b);
}
}
Jdk1.5之后出现了自动装箱和拆箱机制,可以利用包装类直接进行数学计算。
程序:自动装箱和拆箱
public class TestDemo{
public static void main(String args[]){
Integer a = 10;//自动装箱
int temp = a;//自动拆箱
a++;
System.out.println(temp*a);
}
}
Object可以接收一切的引用数据类型,但是由于存在自动装箱的机制,那么object也可以存放基本数据类型。
流程:基本数据类型——自动装箱(成为对象)——向上转型为object
public class TestDemo{
public static void main(String args[]){
Object obj = 10;//先包装,再转换
//Object不能够直接转换为int等基本数据类型,但是可以转换为其包装类
int temp = (integer)obj;//转换为包装类之后自动拆箱。
System.out.println(temp * 2);
}
}
- 数据类型的转换
使用包装类最多的情况是其数据转换功能,在包装类中提供了将String型数据变为基本数据类型的方法。
Integer类:public static int parseInt(String s);
Double类:public static double parseDouble(String s);
Boolean类:public static double parseBoolean(String s);
String类型转换为基本数据类型的时候,其字符串中的数据类型必须为要转换为的数据类型。具体如下:
public class TestDemo{
public static void main(String args[]){
String str = "123";//“”中的数据类型必须为指定类型。
int temp = Integer.parseInt(str);//通过相应的包装类调用转换方法。
System.out.println(temp);
}
}
基本数据类型转换为String类型:
String中提供valueOf()方法,将基本数据类型转换为字符串。