Java中为什么要引入包装类?
Java中为什么要引入包装类?
java中为8种基本数据类型又对应的准备了8种包装类
包装类是引用数据类型,父类是Object。
思考:为什么要再提供8中包装类呢?
假设有这样一个方法:它的形式参数是Object型
它能接收所有引用数据类型,因为Object类是所有类的父类,不能接受基本数据类型。
如果我想传一个int型数字进去,该怎么解决?
看下面一个例子:
测试代码:
public class Test01 {
//形式参数只接受引用类型
public static void superPrint(Object obj) {
System.out.println(obj.toString());
}
public static void main(String[] args) {
int i = 100;
//首先,你得把这个数字进行包装,让一个类带着它传进方法里面
//实例化一个包装类,保存i的值
MyInt myInt = new MyInt(i);
Test01.superPrint(myInt);
}
}
//自己写一个包装类,保存int数字的类
class MyInt {
//保存数的值
private int value;
//setter and getter
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
//构造方法
public MyInt() {
}
public MyInt(int value) {
this.value = value;
}
//重写toString()方法
@Override
public String toString() {
return "int型:" + String.valueOf(value);
}
}
这种包装类是自己写的
以后都不需要写,因为SUN公司已经提供了8种包装类
可以把8种基本数据类型 包装成 引用数据类型。
基本数据类型————包装类型—————————父类
byte——————————java.lang.Byte-—————Number
short—————————-java.lang.Short-————-Number
int———————————-java.lang.Integer-———Number
long——————————java.lang.Long-————-Number
float——————————java.lang.Float-————-Number
double————————-java.lang.Double-———Number
boolean———————-java.lang.Boolean-——-Object
char——————————java.lang.Character-—-Object
8种包装类名也好记
int的包装类是Integer
char的包装类是Character
其他的都是首字母大写变成类名
数字包装类的父类是Number。
Boolean和Character的父类是Object。
还没有评论,来说两句吧...