基本数据类型包装类
**Java是面向对象语言,但是不是“纯面向对象”,因为我们常用的基本数据类型就不是对象。但是在实际应用中我们常常将基本数据类型转化为对象,以方便操作。例如:将基本数据类型存储到object【】数组或者集合中的操作。
为了解决这个不足,Java 在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。
包装类均位于 java.lang 包,八种包装类和基本数据类型的对应关系如表 **
基本数据类型 | 包装类 |
---|---|
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
***在这八个类名中,除了 Integer 和 Character 类以外,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写而已。
在这八个类中,除了 Character 和 Boolean 以外,其他的都是“数字型”,“数字型”都是 java.lang.Number 的子类。
Number 类是抽象类,因此它的抽象方法,所有子类都需要提供实现。Number 类提供了抽象方法:intValue()、longValue()、floatValue()、doubleValue(),意味着所有的“数 字型”包装类都可以互相转型。
/*
* 初识包装类
*/
package com.wu.test;
public class WrapperClassTest {
public static void main(String[]args){
Integer i = new Integer(100); //从java9开始被废弃
Integer j = new Integer(1343);
}
}
包装类的用途:
1、作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如:object【】、集合等的操作。
2、包含每一种基本数据类型的相关属性,如:最小值、最大值以及相关的操作(方法的作用是在基本数据类型、包装类对象、字符串之间提供相关的转化操作)
/*
* 包装类的使用
* 测试Integer的用法,其他包装类与Integer类似
* 基本类型转化为对象称为包装,反之称为拆包
*/
package com.wu.test;
public class Test {
void testInteger(){
// 基本类型转为Integer对象
Integer int1 = new Integer(10);//已被废弃,不推荐使用
Integer int2 = Integer.valueOf(20);//官方推荐这种写法
// Integer对象转化为int
int a = int1.intValue();
// 字符串转为Integer对象
Integer int3 = Integer.parseInt("334");
Integer int4 = new Integer("999");
// Integer对象转化为字符串
String str1 = int3.toString();
// 一些常见int类型相关的常量
System.out.println("int能表示最大的整数:"+Integer.MAX_VALUE);
System.out.println("int能表示最小的整数:"+Integer.MIN_VALUE);
// double类型数据转化为Integer对象,Integer对象转化为double类型数据
Integer d1 = new Integer( (int)22.4);
Integer d2 = Integer.valueOf((int) 33.4);
double d = d1.doubleValue();
// byte类型数据的Integer包装和拆包
Integer b1 = new Integer(128);
Integer b2 = Integer.valueOf(11);
byte b3 = b1.byteValue();
System.out.println(b3);//byte类型数据是【-128,+127】
}
public static void main(String[]args){
Test test = new Test();
test.testInteger();
}
}