概述
在Java中有一个设计的原则“一切皆对象”,那么这样一来Java中的一些基本的数据类型,就完全不符合于这种设计思 想,因为Java中的八种基本数据类型并不是引用数据类型,所以Java中为了解决这样的问题,引入了八种基本数据类型 的包装类。
包装类的作用是为了方便对基本数据类型进行操作.
基本类型和引用类型的区别有以下几点:
1.基本类型不是对象,而引用类型是对象.
2.声明方式:基本数据类型直接声明,引用数据类型需要用new关键字创建.
3.存储的位置:基本数据类型存储在堆栈中,引用类型则通过引用指向实例,具体的实例保存在堆中
4.基本数据类型的初始值依据其类型而定,引用数据类型初始值为null.
以上的八种包装类,可以将基本数据类型按照类的形式进行操作。 但是,以上的八种包装类也是分为两种大的类型的: · Number:Integer、Short、Long、Double、Float、Byte都是Number的子类表示是一个数字。 · Object:Character、Boolean都是Object的直接子类。
包装类型的作用:
包装类是为了方便对基本数据类型进行操作,包装类可以解决一些基本类型解决不了的问题:
1.集合只能存放引用类型的数据, 不能存放基本数据类型.如add(Object o);
2.基本类型和包装类型之间可以互相转换,自动装箱拆箱.
3.包装类的parse方法可以实现基本数据类型+string类型之间的相互转换
4.函数需要传递进去的参数为Object类型,传入基本数据类型就不可行.
装箱和拆箱操作
以下以Integer和Float为例进行操作 将一个基本数据类型变为包装类,那么这样的操作称为装箱操作。
将一个包装类变为一个基本数据类型,这样的操作称为拆箱操作,
因为所有的数值型的包装类都是Number的子类,Number的类中定义了如下的操作方法,以下的全部方法都是进行拆箱的操 作。
字符串转换
使用包装类还有一个很优秀的地方在于:可以将一个字符串变为指定的基本数据类型,此点一般在接收输入数据上使用 较多。
在Integer类中提供了以下的操作方法: public static int parseInt(String s)
:将String变为int型数据 在Float类中提供了以下的操作方法: public static float
parseFloat(String s) :将String变为Float 在Boolean 类中提供了以下操作方法: public
static boolean parseBoolean(String s) :将String变为boolean … …
public static void main(String[] args) {
/**
* 输入:12 输出:121 原因:str是字符串 +将默认字符串拼接
*/
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(str+1);
}
如果我想输入12 输出13 就需要用到包装类的字符串转换类
public static void main(String[] args) {
/**
* 输入:12 输出:13
*/
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int a =Integer.parseInt(str);
System.out.println(a+1);
}