这一节我们来介绍一下包装类。
包装类:
什么是包装类,java为什么要提供包装类。
因为java编程的特点是面向对象的,而基本数据类型不能实现这一功能,使得程序开发存在一定的弊端。虽然java可以处理基本数据类型,但是有些情况下是需要作为对象来处理,这时候就需要转换成包装类了。
数据类型与对象之间转换:
数据类型并不是一个对象,它在内存中存储的方式不同。我们无法像操作一个对象来操作数据类型,比如我们无法计算一个整型的哈希值。这样就导致程序中有很多的比较运算无法进行下去了。解决这种问题最好的方式就是将数据类型封装到一个类中,然后再创建这个类的对象。而封装数据类型的这个类就是包装类。
包装类及其对应的基本数据类型:
左边是类名,右边对应的是基本数据类型

包装类使用方法大致一致,本节以Integer类来介绍:
Integer类:
Integer类用于封装int类型数据,它的构造方法如下:
Integer(int number)Integer(String str)
我们可以用int型的数字作为参数,也可以用String字符串来作为参数,然后创建一个等于参数字面值的一个Integer对象。
包装类提供了更多强大的功能,如下:
//常量MIN_VALUE //最小值MAX_VALUE //最大值SIZE //比特长度TYPE //类型//提供的几个方法parseInt() //转换为int值toString() //返回Integer对象的字符串表现形式toBinargString() //二进制toHexString() //十六进制toDctalString() //八进制
这里有四个常量,也就是前四个,分别是int类型的最小值,最大值,比特长度(多少位),类型(返回了int是哪一种类型)。
然后又列出了几种方法,分别是字符串转换为int值,返回Integer对象的字符串表现形式,返回二进制,返回十六进制,返回八进制。
首先我们来看一下Integer四个常量是什么样子的。
import static java.lang.System.out;/*** 演示类* @author Lrn*/public class Demo {public static void main(String[] args) {out.println("int类型的最大值为:"+Integer.MAX_VALUE);out.println("int类型的最小值为:"+Integer.MIN_VALUE);out.println("int类型的长度:"+Integer.SIZE);out.println("int类型的类型:"+Integer.TYPE);}}
运行结果:
int类型的最大值为:2147483647int类型的最小值为:-2147483648int类型的长度:32int类型的类型:int
我们演示完这四个常量后,我们来看一下如何创建Integer对象
import static java.lang.System.out;/*** 演示类* @author Lrn*/public class Demo {public static void main(String[] args) {//使用构造方法来创建Integer integer1 = new Integer(123);out.println(integer1);out.println("--------分割线--------");//使用构造方法的字符串参数创建Integer integer2 = new Integer("123456789");out.println(integer2);out.println("--------分割线--------");//另一种创建Integer对象的方式Integer integer3 = Integer.valueOf(123);Integer integer4 = Integer.valueOf("123456789");out.println(integer3);out.println(integer4);out.println("--------分割线--------");//将字符串转换为int值并运算int num1 = Integer.parseInt("876");out.println(num1+2);int num2 = integer2 - 10;out.println(num2);out.println("--------分割线--------");//将数字转换为其他进制数字,保存的结果需要在一个字符串当中String str1 = Integer.toBinaryString(11); //十进制转换为二进制out.println("11的二进制表示为:"+str1);String str2 = Integer.toHexString(11); //十进制转换为十六进制out.println("11的十六进制表示为:"+str2);String str3 = Integer.toOctalString(11); //10进制转换为八进制out.println("11的八进制表示为:"+str3);//以上为Integer提供的转换进制的方法,我们也可以自定义转换String str4 = Integer.toString(11,15); //第一个参数为需要转换的十进制数字,第二个参数为需要转换成几进制,这里为15进制out.println("11的十五进制表示为:"+str4);}}
运行结果:
123--------分割线--------123456789--------分割线--------123123456789--------分割线--------878123456779--------分割线--------11的二进制表示为:101111的十六进制表示为:b11的八进制表示为:1311的十五进制表示为:b











