一、什么是包装类
包装类: Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类,包装类均位于java.lang包。
二、应用场景
- 作为 和基本数据类型对应的类类型存在,方便涉及到对象的操作。
比如有时候一个函数需要传递一个Object变量 而你想传递int类型的进去显然不行,这就要用到包装类。比如想传递5进去,就可以这样test(new Integer(5));比如有时候一个函数需要传递一个Object变量 而你想传递int类型的进去显然不行,这就要用到包装类。比如想传递5进去,就可以这样test(new Integer(5));public void test(Object obj){ }
- 集合不允许存放基本类型数据,只能存放包装类型。
- 包装类中包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
三、类型转换
- 基本类型和包装类之间可以相互转换
通过包装类的构造函数,可以将基本类型转为包装对象。public Boolean(boolean value){//..} public Character(char value){//..} public Integer(int value){//..} public Long(long value){//..} public Float(float value){//..} public Double(double value) {//..}
- 基本类型之间相互转换
在各个包装类中,总有形为××Value()的方法,来得到对应的基本类型数据。如Integer可将int转成byte、short、long,float、double。public byte byteValue() { return (byte)value; } public short shortValue() { return (short)value; } public long longValue() { return (long)value; }
- 通过包装类,String可以和基本类型之间相互转换
String->包装类类型
通过包装类的构造函数,Boolean(String s),Integer(String s),Long(String s),Float(String s),Double(String s) 得到包装类对象。
包装类类型->Stringpublic Integer(String s) throws NumberFormatException { this.value = parseInt(s, 10); }
任何包装类都存在一个名为toString()的静态方法能够将其转换成对应的String类。
另外,对于整型类和长整型类,还能够使用toBinaryString(int i),toHexString(int i),toOctalString(int i)分别以二进制,十六进制和八进制的形式进行到String类的转换。//将int类型的20转成字符串 String s = Integer.toString(20); //将Integer类型的20转成字符串 Integer i = new Integer(20); String s2 = i.toString();
四、包装类写法
除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。
boolean -> Boolean
char -> Character
byte-> Byte
short-> Short
long-> Long
int -> Integer
float-> Float
double-> Double