Java包装类
java是一种面向对象的编程语言,为了能把基本数据类型当作对象处理,Java提出了包装类的概念,包装类分别把Java中8个基本数据类型包装成相应的类,这样就可以通过对象调用各自包装类中许多实用的方法,Java中8个基本数据类型各自对应的包装类如下表:
基本数据类型 | 对应的包装类 | 基本数据类型 | 对应的包装类 |
---|---|---|---|
byte | Byte | short | Short |
int | Integer | long | Long |
float | Float | double | Double |
char | Character | boolean | Boolean |
下面对较常用的包装类进行讲解:
Integer类
java.long包中的Byte类、Integer类、Short类和Long类,分别是基本数据类型byte、int、short和long类的包装类,由于上述4个包装类都是Number类,且都是对整数进行操作,所以上述4个包装类包含的方法也基本相同,下面将以Integer类为例,讲解Integer类中的构造方法、常用方法和常量。
构造方法:
Integer类有以下两种构造方法
- Integer(int number):该方法以一个int型变量作为参数创建Integer对象,例如:
Integer number = new Integer(123);
- Integer(String int):该方法以一个String型变量作为参数创建Integer对象,例如:
Integer number = new Integer("123");
注意:如果要使用字符串变量创建Integer对象,字符串变量的值必须是整数型的(如"123"),否则将会抛出NumberFormatException异常。
Integer常用的方法如下表:
方法 | 返回值 | 功能描述 |
---|---|---|
valueOf(String str) | Integer | 返回String型参数值的Integer对象 |
parseInt(String str) | int | 返回与String型参数值等价的int值 |
toString() | String | 返回一个表示Integer值得String对象(可以指定进制基数) |
toBinaryString(int i) | String | 以二进制无符号整数形式返回一个整数参数的字符串表示形式 |
toHexString(int i) | String | 以十六进制无符号整数形式返回一个整数参数的字符串表示形式 |
toOctalString(int i) | String | 以八进制无符号整数形式返回一个整数参数的字符串表示形式 |
equals(Object IntegerObj) | Boolean | 比较此对象与指定的对象是否相等 |
intValue() | int | 以int型返回此Integer对象 |
shortValue() | short | 以short型返回此Integer对象 |
byteValue() | byte | 以byte型返回此Integer对象 |
compareTo(Integer anotherInteger) | int | 对两个Integer对象进行数值比较,如果这两个值相等,则返回0;如果调用对象的数值小于anotherInteger的数值,则返回负值;如果调用对象的数值大于anotherInteger的数值,则返回正值。 |
下面通过一个实例演示Integer类常用方法的使用,代码如下:
public class Demo{
public static void main(String[] args) {
//用parseInt方法将字符串123转换成数字类型
int num = Integer.parseInt("123");
//创建一个Integer对象
Integer num1 = Integer.valueOf(123);
//将转换成数字类型的数字加1
System.out.println("将num值加1:" + (num+1));
//用equals方法比较num和num1数值是否相等
System.out.println("equals(Object IntegerObj)方法:" + num1.equals(num));
//二进制方法
String num2 = Integer.toBinaryString(123456);
System.out.println("toBinaryString(int i)方法:" + num2);
//十六进制方法
String num3 = Integer.toHexString(1234567);
System.out.println("toHexString(int i)方法:" + num3);
//八进制方法
String num4 = Integer.toOctalString(12345678);
System.out.println("toOctalString(int i)方法:" + num4);
//将123456789转换成十五进制方法
String num5 = Integer.toString(123456789,15);
System.out.println("toString()方法:" + num5);
}
}
返回结果如下图:
Integer常量
Integer类提供了以下4个常量:
- MAX_VALUE:表示int类型可取的最大值;
- MAX_VALUE:表示int类型可取的最小值;
- SIZE:用来以二进制补码形式表示int值得位数;
- TYPE:表示基本类型int的Class实例;
public class Demo { // 创建类GetCon
public static void main(String args[]) {
int maxint = Integer.MAX_VALUE; // 获取Integer类的最大值
int minint = Integer.MIN_VALUE; // 获取Integer类的最小值
int intsize = Integer.SIZE; // 获取Integer类的二进制位数
System.out.println("int类型可取的最大值是:" + maxint); // 将常量值输出
System.out.println("int类型可取的最小值是:" + minint);
System.out.println("int类型的二进制位数是:" + intsize);
}
}
返回值如下图:
Number类
Number类是一个抽象类,它是Byte类、Integer类、Short类、Long类、Float类和Double类的父类如下图:
要把Number类的子类对象转换成为对应的基本数据类型,需要使用Number类对应子类中的方法,这些方法如下表:
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte形式返回指定的数值 |
intValue() | int | 以int形式返回指定的数值 |
floatValue() | float | 以float形式返回指定的数值 |
shortValue() | short | 以short形式返回指定的数值 |
longValue() | long | 以long形式返回指定的数值 |
doubleValue() | double | 以double形式返回指定的数值 |