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。

    原文作者:pipizhen_
    原文地址: https://blog.csdn.net/pipizhen_/article/details/107348355
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞