07.包装类
Java可以直接处理基本类型的数据,但是在有些情况下需要将其作为对象处理,这时需要将其转换为包装类。
7.1Integer
该类对象包含了一个int类型的字段,提供多个方法在int和String类型之间转换,另外还提供了一些处理int类型的常量和方法。
另外还有Long类和Short类,包含的方法基本相同。
1.初始化
Integer num1 = 32;
// 1.隐式调用构造函数
Integer num2 = new Integer(32);
Integer num3 = new Integer("32");
// 2.显示调用构造函数,参数为int类型或者数值型String变量
Integer num4 = Integer.valueOf("32");
Integer num5 = Integer.valueOf(32);
// 3.调用valueOf函数,参数为int类型或者数值型String变量
2.常量
MAX_VALUE:int类型的最大值 2^31-1
MIN_VALUE:int类型的最小值 -2^31
SIZE: 二进制补码形式表示int值的位数,32
TYPE: 表示基本类型int的class实例
3.常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte类型返回该Integer的值 |
compareTO(Integer anotherInteger) | int | 在数值上比较两个Integer对象,两个值相等返回0;调用对象值更大返回正值;否则返回负值 |
equals(Object IntegerObj) | boolean | 比较此对象与指定对象是否相等 |
intValue() | int | 以int型返回此Integer对象 |
shortValue() | short | 以short型返回此Integer对象 |
toString() | String | 返回一个表示该Integer值的String对象 |
valueOf() | Integer | 返回保存指定的String值的Integer对象 |
parseInt(String str) | int | 返回包含在由str指定的字符串中数字的等价整数值 |
7.2Boolean
1.初始化
Boolean b1 = true;
// 1.隐式调用构造函数
Boolean b2 = new Boolean("1");
Boolean B2 = new Boolean(true);
// 2.显式调用构造函数,参数为boolean类型或者string类型(String参数不为NULL、忽略大小写时等于true则值为true,否则为false)
Boolean b4 = Boolean.valueOf("32");
// 3.valueOf()函数,String参数不为NULL、忽略大小写时等于true则值为true,否则为false
2.常量
TRUE:对应值为true的Boolean对象
FALSE:对应值为false的Boolean对象
TYPE:基本类型boolean的Class对象
3.常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
booleanValue() | boolean | 将Boolean对象的值以相应的boolean值返回 |
equals(Object obj) | boolean | 判断调用该方法的对象与obj是否相等。仅当参数不是null,而且与调用该方法的对象一样都表示同一个boolean值对象时,返回true |
parseBoolean(String s) | boolean | 将字符串番薯解析为boolean值 |
toString() | String | 返回表示该boolean值的String对象 |
valueOf(String s) | boolean | 返回一个用指定字符串表示的boolean值 |
7.3Byte
1.初始化
Byte a2 = 32;
// 1.隐式调用构造函数
Byte a1 = new Byte("31");
byte a3 = 33;
Byte a4 = new Byte(a3);
// 2.显式调用一个构造函数,参数为String类型或者byte类型
Byte a5 = Byte.valueOf("35");
// 3.推荐,调用valueOf函数,参数为String或者byte类型数值
2.常量
MIN_VALUE:byte类型最小值,-128
MAX_VALUE:byte类型最大值,127
SIZE:二进制补码形式表示的byte值的位数,8
TYPE:基本类型byte的CLASS实例
3.常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以一个byte值返回Byte对象 |
compareTo(Byte anotherByte) | int | 在数字上比较两个Byte对象 |
doubleValue() | double | 以一个double值返回此Byte的值 |
intValue() | int | 以一个int值返回此Byte的值 |
paraseByte(String s) | byte | 将String型参数解析成等价的字节(byte)形式 |
toString() | String | 返回表示此Byte的值的String对象 |
valueOf(String str) | byte | 返回一个保持指定的String所给出的值的Byte对象 |
equals(Object obj) | boolean | 将此对象与指定的对象比较,如果调用该方法的对象与obj相等,则返回true,否则返回false |
7.4Character
1.初始化
Character s1 = 's';
// 1.隐式调用构造方法,参数为一个char类型
Character s2 = new Character('a');
// 2.显式调用构造方法
Character s3 = Character.valueOf('b');
// 3.返回一个character对象,保存指定的string类型
2.常量
Character类提供大量表示特定字符的常量,用以表示Unicode规范中的常规类别。
3.常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
equals(Object obj) | Boolean | 将调用该方法的对象与指定的对象相比较 |
toUpperCase(char ch) | char | 将字符参数转换为大写 |
toLowerCase(char ch) | char | 将字符参数转换为小写 |
toString() | String | 返回一个表示指定char值的String对象 |
charValue() | char | 返回此Character对象的值 |
isUpperCase(char ch) | boolean | 判断指定字符是否为大写字符 |
isLowerCase(char ch) | boolean | 判断指定字符是否为小写字符 |
7.5Double
1.初始化
Double a1=3.14;
//1.隐式调用构造函数,参数为double类型
Double a2=new Double(3.141);
Double a3=new Double("3.1415");
//2.显式调用构造函数,参数为double类型或者String类型
Double a4=Double.valueOf(3.1415);
Double a5=Double.valueOf("3.14159");
//3.valueOf函数返回一个Double类型,参数为double类型或者String类型
2.常量
Double.MAX_EXPONENT:返回一个int值,表示double的最大指数
Double.MIN_EXPONENT:返回一个int值,表示double的最小指数
Double.NEGATIVE_INFINITY:返回一个double值,表示保存double类型的负无穷大值的常量
Double.POSITIVE_INFINITY:返回一个double值,表示保存double类型的正无穷大值的常量
3.常用方法
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以byte形式返回Double对象值(通过强制转换) |
compareTO(Double b) | int | 对两个Double对象进行数值比较。相等返回0,调用对象小返回负值,否则返回正值 |
equals(Object obj) | boolean | 将此对象与指定的对象相比较 |
intValue() | int | 以此int形式返回double值 |
isNaN() | boolean | 如果此double值时非数字(NaN)值,则返回true;否则返回false |
toString() | String | 返回此Double对象的字符串表示形式 |
valueOf(String str) | Double | 返回保存用参数字符串str表示的double值的Double对象 |
doubleValue() | double | 以double形式返回此Double对象 |
longValue() | long | 以long形式返回此double值(通过强制类型转换为long类型) |
7.7抽象类常用方法归纳
抽象类Number是所有数字类的父类,其中提供了包装类互相转换的方法,并被各子类实现
7.7.1.包装类转换为基本类型
7.7.2包装类赋值valueOf()
所有包装类都有该方法,已在上文中给出示例
character类中参数只能是char类型,其他包装类参数可以是对应基本类型和String类型
7.7.3将字符串转变为基本类型parse**()
String str="123";
int num1=Integer.parseInt(str);
double num2=Double.parseDouble(str);
boolean num3=Boolean.parseBoolean(str);
//parseBoolean()参数不为true(不区分大小写),则返回值均为False
7.7.4将包装类转换为String类型toString()
Integer num1=32;
Byte num2=33;
Character num3='s';
Boolean num4=true;
String str1=num1.toString();
String str2=num2.toString();
String str3=num3.toString();
String str4=num4.toString();
//经实验,亦可以直接通过类调用toString()方法,用参数赋值
7.7.5比较两个对象是否相等equals(Object Obj)
返回一个Boolean值
Integer num1=Integer.valueOf(33);
Integer num2=Integer.valueOf(34);
Boolean result=num1.equals(num2);
7.7.6比较两个对象的大小compareTo(Object Obj)
Boolean类没有该方法,该方法返回一个int值
形如Obj1.compareTo(Obj2);
若Obj1等于Obj2,返回0;
若Obj1大于Obj2,返回一个正数;
若Obj1等于Obj2,返回一个负数;
Integer num1=Integer.valueOf(33);
Integer num2=Integer.valueOf(34);
int flag=num1.compareTo(num2);
参考博客及书籍:
《Java从入门到精通》