1、Java 包装类
Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型boolean、字符型char,相对应地,Java提供了8种包装类Byte、Short、Integer、Long、Float、Double、Boolean、Character。包装类创建对象的方式就跟其他类一样。包装类提供了一种使用原始数据类型作为对象的方法。
下表是原始类型和对应的包装类:
原始数据类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
有时必须使用包装类,例如,在使用Collection对象时,例如,作为ArrayList
,其中不能使用基本类型(列表只能存储对象):
例如:
ArrayList<int> myNumbers = new ArrayList<int>(); // 报错
ArrayList<Integer> myNumbers = new ArrayList<Integer>(); // 正常创建方法
2、创建包装类对象
要创建包装类对象,需要使用包装类而不是原始类型。要获取值,可以只打印输出对象:
例如:
public class Main {
public static void main(String[] args) {
Integer myInt = 8;
Double myDouble = 8.99;
Character myChar = 'A';
System.out.println(myInt);
System.out.println(myDouble);
System.out.println(myChar);
}
}
由于使用的是包装类对象,因此可以使用某些方法来获取有关特定对象的信息。
例如,以下方法用于获取与
相应的包装对象:intValue()
,byteValue()
,shortValue()
,longValue()
,floatValue()
,doubleValue()
,charValue()
,booleanValue()
。
下面示例将输出与以上示例相同的结果:
例如:
public class Main {
public static void main(String[] args) {
Integer myInt = 2;
Double myDouble = 9.99;
Character myChar = 'A';
System.out.println(myInt.intValue());
System.out.println(myDouble.doubleValue());
System.out.println(myChar.charValue());
}
}
另一个有用的方法是toString()
方法,该方法用于将包装器对象转换为字符串。
在下面的示例中,我们将Integer
转换为String
,并使用String对象的length()
方法输出字符串的长度:
例如:
public class Main {
public static void main(String[] args) {
Integer myInt = 100;
String myString = myInt.toString();
System.out.println(myString.length());
}
}
3、装箱和拆箱
基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。
例如,
public class Main {
public static void main(String[] args) {
int m = 100;
Integer obj = m; // 自动装箱
int n = obj; // 自动拆箱
System.out.println("n = " + n);
Integer obj1 = 100;
System.out.println("obj等价于obj1返回结果为" + obj.equals(obj1));
}
}