由于java中的数据类型int,double等不是对象,所以无法通过向上转型得到Object提供的方法,而像String却可以,原因是String是一个对象而不是一个类型。java提供包装类就是为了解决,基本数据类型因为上述的特性,导致无法参与转型,泛型,反射等过程的问题。包装类根据名称可以得知,就是将基本的数据类型以及一些辅助方法包装到类中。

基本数据类型所对应的引用数据类型,可实现自动装箱和自动拆箱:

例如实现一个int的包装类型 代码如下:
class IntDemo
{
private int num;
public IntDemo(int num)
{
this.num = num;
}
public int intValue()
{
return this.num;
}
}
那么java提供哪些包装类呢?主要包括下面两种。
第一种,对象型包装类,它不继承任何其他类(Object的直接子类);代码展示如下:// boolean的包装类
public final class Boolean implements java.io.Serializable
, Comparable
// char的包装类
public final
class Character implements java.io.Serializable, Comparable
第二种,数值型包装类,继承于Number类。代码展示如下:// byte的包装类
public final class Byte extends Number implements Comparable
// short的包装类
public final class Short extends Number implements Comparable
// int的包装类
public final class Integer extends Number implements Comparable
// long的包装类
public final class Long extends Number implements Comparable
// float的包装类
public final class Float extends Number implements Comparable
// double的包装类
public final class Double extends Number implements Comparable
另外, Boolean和Character两个类就是正常的属性方法封装,但是数值型的包装类继承了一个Number类。代码展示如下:public abstract class Number implements java.io.Serializable
本文详细介绍了Java中的包装类,包括对象型包装类(Boolean和Character)和数值型包装类(Number及其子类),展示了如何解决基本类型无法直接参与转型、泛型和反射等问题,以及它们在代码中的使用实例和Number类的作用。
129

被折叠的 条评论
为什么被折叠?



