包装类小总结

1,包装类的作用

2,包装类的自动装箱,自动拆箱操作

3,包装类的转换操作

在Java中提倡一种思想:一切 皆对象。但是Java的数据类型划分中分为两种:1,基本数据类型,2引用数据类型,引用数据类型是对象也是基于对象的操作,但是基本数据类型并不是对象,这就与设计初衷有了矛盾。

包装类的作用就是解决这个矛盾的。

那么问题来了,如何解决这个矛盾呢,如何进行包装呢?

实现包装
Java中的8种基本数据类型并不是对象,将这些基本数据类型包装,就是将这8种基本数据类型变成一个类的形式,这样就可以以对象的形式操作这些基本数据类型。

这里写图片描述

在jdk的API中查找一下这8种包装类的父类,看看他们都是什么

Boolean

public final class Boolean
extends Object
implements Serializable, Comparable<Boolean>

Character

public final class Character
extends Object
implements Serializable, Comparable<Character>

数值类型的
Byte

public final class Byte
extends Number
implements Comparable<Byte>

Short

public final class Short
extends Number
implements Comparable<Short>

Integer

public final class Integer
extends Number
implements Comparable<Integer>

Long

public final class Long
extends Number
implements Comparable<Long>

Float

public final class Float
extends Number
implements Comparable<Float>

Double

public final class Double
extends Number
implements Comparable<Double>

发现他们都是继承自Number,我们看看Number的继承结构

public abstract class Number
extends Object
implements Serializable

Number类提供了返回这6种基本数据类型的操作,但是Number是抽象类,这些方法都是抽象方法。
这里写图片描述

Java-doc 可以直接查看API

Number类是一个抽象类,主要是将数字包装类中的内容变为基本数据类型。通过以上的对应方法,得到对应的基本数据类型值。

拆箱:

将包装类类型变为基本数据类型称为拆箱

装箱:

将基本数据类型变为包装类称为装箱。

public class WrapperDemo01{
    public static void main(String args[]){
        int x = 30 ;        // 基本数据类型
        Integer i = new Integer(x) ;    // 装箱:将基本数据类型变为包装类
        int temp = i.intValue() ;// 拆箱:将一个包装类变为基本数据类型
    }
};
public class WrapperDemo02{
    public static void main(String args[]){
        float f = 30.3f ;       // 基本数据类型
        Float x = new Float(f) ;    // 装箱:将基本数据类型变为包装类
        float y = x.floatValue()    ;// 拆箱:将一个包装类变为基本数据类型
    }
};

然而在jdk1.5版本之后,可以自动装箱,自动拆箱了,而不用再根据构造方法和对应的value方法进行装箱和拆箱了。

public class WrapperDemo03{
    public static void main(String args[]){
        Integer i = 30 ;    // 自动装箱成Integer
        Float f = 30.3f ;   // 自动装箱成Float
        int x = i ;         // 自动拆箱为int
        float y = f ;       // 自动拆箱为float
    }
};

也可以直接将一个字符串的数据变为基本数据类型了。

public class WrapperDemo04{
    public static void main(String args[]){
        String str1 = "30" ;    // 由数字组成的字符串
        String str2 = "30.3" ;  // 由数字组成的字符串
        int x = Integer.parseInt(str1) ;    // 将字符串变为int型
        float f = Float.parseFloat(str2) ;  // 将字符串变为int型
        System.out.println("整数乘方:" + x + " * " + x + " = " + (x * x)) ;
        System.out.println("小数乘方:" + f + " * " + f + " = " + (f * f)) ;
    }
};
public class WrapperDemo05{
    public static void main(String args[]){
        int x = Integer.parseInt(args[0]) ; // 将字符串变为int型
        float f = Float.parseFloat(args[1]) ;   // 将字符串变为int型
        System.out.println("整数乘方:" + x + " * " + x + " = " + (x * x)) ;
        System.out.println("小数乘方:" + f + " * " + f + " = " + (f * f)) ;
    }
};

这里写图片描述

学习总结到这里有一个问题,在Java的API中可以查到这些包装类,但是对于基本数据类型,API中是没有的,因为API是以类接口等这些对象为组织单元的,对于基本数据类型这种非对象形式存在的,在API中并没有找到,那么这些关键字,在哪里可以找到关于他们的定义及其其他的相关内容呢?我还是没有找到。。。。。。。欢迎留言指点,交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值