Java面向对象之——包装类
在Java中有一个设计的原则“一切皆对象”,那么这样一来Java中的一些基本的数据类型,就完全不符合于这种设计思想,因为Java中的八种基本数据类型并不是引用数据类型,所以Java中为了解决这样的问题,引入了八种基本数据类型的包装类。
为八种基本数据类型提供包装类的作用
包装类的出现,能够使得基本数据类型和引用数据类型之间可以相互转换;
以上的八种包装类也是分为两种大的类型的:
· Number:Integer、Short、Long、Double、Float、Byte都是Number的直接子类,表示是一个数字。
· Object:Character、Boolean,Number都是Object的直接子类。
我们知道,基本数据类型存储在栈中,而类存储在堆中。当基本数据类型有了自己的包装类后,那么赋值就可以这么写:
这样对象名i就保存着地址存储在栈中,Interger类则存储在堆中。
变为包装类的好处
1,我们知道,对象可以作为接口传给方法;当变为包装类后,对象i也就可以传给一个方法:
Integer i = new Integer(10);
public void xxx(Object o){ … }
2,Integer还提供直接把字符串转换为数字的功能:
int a = Integer.parseInt(“100”);
装箱和拆箱操作
装箱和拆箱操作是我们使用包装类时常用的功能。
装箱:指如何把一个基本数据类型的值变成包装类。
拆箱:指从包装类中把值变为基本数据类型。
因为所有的数值型的包装类都是Number的子类,Number的类中定义了如下的操作方法,以下的全部方法都是进行拆箱的操作。
字符串转换
使用包装类还有一个很优秀的地方在于:可以将一个字符串变为指定的基本数据类型,此点一般在接收输入数据上使用较多。
在Integer类中提供了以下的操作方法:
public static int parseInt(String s) ;
将String变为int型数据
在Float类中提供了以下的操作方法:
public static float parseFloat(String s) ;
将String变为Float
在Boolean 类中提供了以下操作方法:
public static boolean parseBoolean(String s) ;
将String变为boolean
…
…
方法的可变参数
一个方法中定义完了参数,则在调用的时候必须传入与其一一对应的参数,但是在JDK 1.5之后提供了新的功能,可以根据需要自动传入任意个数的参数。
语法:
返回值类型 方法名称(数据类型…参数名称) {
注意:可变参数只能出现在参数列表的最后。