基本类型包装类

目录

基本类型包装类

基本类型包装类概述

Integer类的概述和使用

Int和String的相互转换

自动装箱和拆箱


基本类型包装类

基本类型包装类概述

先到程序中演示:

/*
    基本类型包装
 */
public class IntegerDemo {
    public static void main(String[] args) {
        //需求:判断一个数据是否在int范围内
        //public static final int MAX_VALUE
        //public static final int MIN_VALUE
        System.out.println(Integer.MAX_VALUE);//2147483647
        System.out.println(Integer.MIN_VALUE);//-2147483648
    }
}

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。

常用的操作之一:用于基本类型与字符串之间的转换。

基本数据类型与包装类的定义关系:

除了int和char数据类型的包装类有点不同之外,其他的数据类型对应的包装类都是首字母大写。

Integer类的概述和使用

主要讲解Integer包装类,其他七种包装类借鉴Integer包装类自学即可。

Integer的构造方法:

过时的方法都是可以用的,只是不建议使用。过时的方法已经被valueOF方法替代了。

程序演示:

/*
    构造方法:
        public Integer(int value),根据int值创建Integer对象(过时)
        public Integer(String s),根据String值创建Integer对象(过时)

    静态方法获取对象:
        public static Integer valueOf(int i),返回表示指定的int值的Integer实例
        public static Integer valuesOf(String s),返回一个保存指定值的Integer对象Sting
 */
public class IntegerDemo {
    public static void main(String[] args) {
        Integer i1 = new Integer(100);
        System.out.println(i1);//我门的i1是new出来的此处输出结果为100而不是地址值,说明它重写了toString方法.

        Integer i2 = new Integer("100");
        System.out.println(i2);//结果也是100,如果字符串不是数字字符串则会报错,不能写除数字以外的东西
        //上述两个方式已过时,所以我们尽量不要使用,我们来往下学习新的方式
        System.out.println("=====================");

        Integer i3 = Integer.valueOf(100);
        System.out.println(i3);//100

        Integer i4 = Integer.valueOf("100");
        System.out.println(i4);//100.这里也是不能写除了数字字符串以外的字符串
    }
}

Int和String的相互转换

基本类型包装类的最常见操作就是:用于基本类型和字符串之间的相互转换。

程序演示:

/*
    int和String之间的相互转换
 */
public class IntegerDemo {
    public static void main(String[] args) {
        //int --> String
        int number = 100;
        //方式1:使用字符串连接
        String s1 = "" + number;//字符串参与加法运算,其实做的是字符串连接,把number的值变成字符串
        System.out.println(s1);

        //方式2:public static String valueOf(int i),返回int参数的字符串表示形式.
        String s2 = String.valueOf(number);
        System.out.println(s2);
        System.out.println("=================");

        //String --> int
        String s3 = "100";
        //方式1:String --> Integer --> int
        Integer i1 = Integer.valueOf(s3);
        //public int intValue(),返回此值 Integer为 int
        int x = i1.intValue();
        System.out.println(x);//100,此时100就为int类型

        //方式2:static int parseUnsignedInt(String s),将字符串参数解析为无符号十进制整数。
        int i2 = Integer.parseUnsignedInt("110");
        System.out.println(i2);//110
    }
}

小结:

Int转换为Sting类型

public static String valueOf(int i),返回int参数的字符串表示形式.

String转换位int类型

static int parseUnsignedInt(String s),将字符串参数解析为无符号十进制整数。

自动装箱和拆箱

  1. 装箱:把基本数据类型转换为对应的包装类类型。
  2. 拆箱:把包装类类型转换为对应的基本数据类型。

程序演示:

/*
    装箱:把基本数据类型转换为对应的包装类类型。
    拆箱:把包装类类型转换为对应的基本数据类型。

 */
public class IntegerDemo {
    public static void main(String[] args) {
        //1.装箱:把基本数据类型转换为对应的包装类类型。
        Integer i1 = Integer.valueOf(100);//这个动作就是装箱
        //2.那什么是自动装箱呢?
        Integer i2 = 100;//这个动作就是自动装箱,他底层代码也做了Integer.valueOf(100)这个操作

        //3.拆箱:把包装类类型转换为对应的基本数据类型。
        //我们将 i2的值+两百
         i2 = i2.intValue() + 200;//这个叫手动拆箱
        //那什么是自动拆箱呢?
        i2 += 200;//这个就是自动拆箱,它并不会报错因为它的底层代码也是做了i2.intValue() + 200这个操作
        System.out.println(i2);

        //4.一个空指针小问题
//        Integer iii = Integer.valueOf(null);
//        iii += 300;//报错,因为相当于iii调用valuesOf方法,而iii是null,null不可能调用方法所以肯定是空指针.

        //5.注释掉上面两条代码,加一个if判断即可解决问题
        Integer iii = null;
        if (iii != null){
            iii += 300;
        }

    }
}

注意:在使用包装类类型的时候,如果做操作,最好先判断是否为null;我们推荐的是,只要是对象,在使用前就必须进行不为null的判断(尤其是在开发中一定要做这个判断)

--欢迎大家与我一起交流java知识

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贰陆.256

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值