Java中的包装类,读懂这篇就够了

Java中的包装类,读懂这篇就够了

前言
本期来和大家一起分享学习一下Java中的包装类。
As everyone know,Java是一门面型对象的语言,Java中的类把方法与数据连接到一起,构成了自包含式的处理单元。但是在Java中不能定义基本类型(Primitive Type)对象,为了能够将基本类型视为对象进行处理,并能够连接相关的方法,Java为每个基本类型都提供了包装类,如int类型数值的包装类Integer和boolean型数值的的包装类Boolean等,这样便可以吧这些基本数据类型转换为对象来处理了。需要说明的是,Java是可以直接处理基本类型的,但还是在有些情况下需要将其作为对象来处理,这是就需要将其转换为包装类了。
(本文中若有任何错误的观点说法,还请路过的大佬不吝赐教,感激不尽)


一、Integer

java.lang包中的Integer类、Long类和Short类,分别将基本数据类型int、long和short封装成一个类。由于这些类都是Number的子类,区别就是封装不同的数据类型,其中包含的方法基本相同,所以在这里我就以Integer类为例来介绍整个包装类。

Integer类在对象中包装了一个基本类型的int的值。该类的对象包含一个int类型的字段,此外,该类提供了多个方法,能够实现在int型和String型之间相互转换,同时还提供了一些其他一些处理int类型时非常有用的常量和方法。

1.1构造方法

Integer类有以下两种构造方法
(1)Integer(int number)
该方法以一个int类型变量作为参数来获取Integer对象

实例:

Integer number1 = new Integer(7);

(2)Integer(String str)
该方法以一个String类型的变量作为参数来获取Integer对象

实例:

Integer number2 = new Integer("15");

注意:
要用数值型String变量作为参数,比如123,否则将会抛出NumberFormatException异常


1.2常用方法

Integer类的常用方法如下面的表格所示:(偷个小懒,用Excel表格写一下)

在这里插入图片描述

Integer类中的parseInt()方法返回与调用该方法的数值字符串相应的整型(int)值。来吧,展示一段代码来说明parseInt()方法的应用。

代码示例:

/**
 *该类用于测试parseInt()方法
 */
public class Test0 {            //创建类
    public static void main(String[] args) {        //主方法
       String str[] = {"89","12","10","18","35"};   //创建数组
        int sum = 0;                        //创建int型变量
        for (int i = 0; i < str.length; i++) {      //遍历数组
            int myint = Integer.parseInt(str[i]);       //将数组中的每个元素都转换为int型
            sum = sum + myint;                          //将数组中的元素相加
        }

        //输出计算结果
        System.out.println("数组中各元素之和是:" + sum);
    }
}

运行结果:

在这里插入图片描述

Integer类的toString()方法可将Integer对象转换为十进制字符串表示。toBinaryString()、toHexString()和toOctalString()方法分别将值转换成二进制、十六进制和八进制字符串。

代码示例:

/**
 * 该类用于测试以下方法
 * toBinaryString()、toHexString()和toOctalString()
 */
public class Test1 {        //创建类
    public static void main(String[] args) {        //主方法
        String str1 = Integer.toString(456);         //获取数字的十进制表示
        String str2 = Integer.toBinaryString(456);      //获取数字的二进制表示
        String str3 = Integer.toHexString(456);      //获取数字的实例进制表示
        String str4 = Integer.toOctalString(456);       //获取数字的八进制表示
        
        //输出结果
        System.out.println("‘456’的十进制表示为:" + str1);
        System.out.println("‘456’的二进制表示为:" + str2);
        System.out.println("‘456’的十六进制表示为:" + str3);
        System.out.println("‘456’的八进制表示为:" + str4);
        
    }
}

运行结果:

在这里插入图片描述


1.3常量

Integer类提供了下面四个常量:

  • MAX_VALUE:表示int类型可取的最大值(2的三十一次方减1)
  • MIN_VALUE:表示int类型可取得最小值(-2的三十一次方)
  • SIZE:用来以二进制补码形式表示int值的位数。
  • TYPE:表示基本类型int的Class实例

代码示例:

/**
 * 该类用于将Integer类的常量值输出
 */
public class Test2 {        //创建类
    public static void main(String[] args) {        //主方法
        
        //获取Integer的常量值
        int maxint = Integer.MAX_VALUE;
        int minint = Integer.MIN_VALUE;
        int sizeint = Integer.SIZE;
        
        //输出常量
        System.out.println("int类型可取的最大值是:" + maxint);
        System.out.println("int类型可取的最小值是:" + minint);
        System.out.println("int类型的二进制位数是:" + sizeint);
    }
}

运行结果:

在这里插入图片描述


二、Boolean

Boolean类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。此外,此类还为boolean和String的相互转换提供了许多方法,并提供了处理boolean时非常有用的其他一些常量和方法。

2.1构造方法

(1)Boolean(boolean value)

该方法创建一个表示value参数的Boolean对象
实例:
Boolean b = new Boolean(true);

(2)Boolean(String str)
该方法以String变量作为参数创建Boolean对象。如果String参数不为null且在忽略大小写时等于true,则分配一个表示true的值作为Boolean对象,否则获得一个false值的Boolean对象

实例:

Boolean bool = new Boolean(“ok”);

2.2常用方法

Boolean类的常用方法如下表所示:

在这里插入图片描述

代码示例:

/**
 * 使用不同的构造方法创建Boolean对象,并调用booleanValue()方法
 * 将创建的对象重新转换为boolean数据输出
 */
public class Test3 {            //创建类
    public static void main(String[] args) {        //主方法
        //创建Boolean对象
        Boolean b1 = new Boolean(true);
        Boolean b2 = new Boolean("ok");
        
        //输出结果
        System.out.println("b1:" + b1.booleanValue());
        System.out.println("b2:" + b2.booleanValue());
    
    }
}

运行结果:

在这里插入图片描述


2.3常量

Boolean提供了一下三个常量:

  • TRUE:对应基值true的Boolean对象
  • FALSE:对应基值false的Boolean对象
  • TYPE:基本类型boolean的Class对象

三、Byte

Byte类将基本类型为byte的值包装在一个对象中。一个Byte类型的对象只包含一个类型为byte的字段。此外,该类还为byte和String相互转换提供了方法,并提供了其他一些处理byte时非常有用的常量和方法。

3.1构造方法

Byte类提供了以下两种构造方法的重载形式来创建Byte类对象。
(1)Byte(byte value)
通过该方法创建Byte对象,可表示指定的Byte值

实例:

byte b = 45;
Byte B = new Byte(b);

(2)Byte(String str)
通过这种方法创建的Byte对象,可表示String参数所指示的byte值

实例:

Byte b = new Byte(12);

注意:
要用数值型String 变量作为参数,如123,否则将会抛出NumberFormatExcep异常


3.2常用方法

Byte类的常用方法如下表所示:

在这里插入图片描述


3.3常量

Byte类中提供了如下四个常量:

  • MIN_VALUE:byte类型可取的最小值
  • MAX_VALUE:byte类型可取的最大值
  • SIZE:用于以二进制补码形式表示byte值的位数
  • TYPE:表示基本类型byte的Class实例。

四、Character

Character类在对象中包装一个接班类型为char的值。一个Character类型的对象包含类型为char的单个字段。该类提供了几种方法,以确定字符的类别(小写字母、数字等),并将字符从大写转换为小写,反之亦然。

4.1构造方法

Character类的构造方法的语法如下:

Character(char value)

该类的构造函数必须是一个char类型的数据。通过该构造函数创建的Character类型的对象包含由char类型参数提供的值。一旦Character类被创建,它包含的数值就不能改变了。

实例:

Character c = new Character(‘s’);

4.2常用方法

Character类提供了很多方法来完成对字符的操作,常用的方法如下表所示:

在这里插入图片描述

通过一段代码来介绍一下其中某些方法的使用。
代码示例:

/**
 * 该类用于测试isUpperCase()方法和isLowerCase();方法的使用
 */
public class Test4 {        //创建类
    public static void main(String[] args) {        //主方法
        Character mychar1 = new Character('A');     //声明character对象
        Character mychar2 = new Character('a');     //声明character对象

        //调用方法,输出结果
        System.out.println(mychar1 + "是大写字母吗?" + mychar1.isUpperCase(mychar1));
        System.out.println(mychar2 + "是小写字母吗?" + mychar2.isLowerCase(mychar2));
    }
}

运行结果:

在这里插入图片描述


4.3常量

Character类提供了大量表示特定字符的常量,举几个栗子:

  • CONNECTOR_PUNCTUATION:返回byte型值,表示Unicode规范中的常规类别“Pc”
  • UNASSIGNED:返回byte型值,表示Unicode规范中的常规类别“Cn”
  • TITLECASE_LETTER:返回byte型值,表示Unicode规范中的常规类别“Lt”

五、Double

Double和Float包装类是对double和float基本类型的封装,它们都是Number的子类,又都是对小数的操作,所以常用的方法基本相同。这个模块主要介绍一下Double类,对于Float类可以参考Double类的相关介绍

Double类在对象中包装一个基本类型为double的值。每个Double类的对象都包含一个double类型的字段。此外,该类还提供了多个方法,可以将double转换为String,也可以将String转换为double,也提供了其他一些处理double时有用的常量和方法。

5.1构造方法

Double类提供了以下两种构造方法来获得Double对象

  • Double(double value):基于double参数创建Double类对象。
  • Double(String str):构造一个新分配的Double对象,表示用字符串double类型的浮点值

注意:
如果不是数值类型的字符串作为参数,则抛出NumberFormatException异常。


5.2常用方法

Double类的常用方法如下表所示:

在这里插入图片描述


5.3常量

Double提供了以下常量。

  • MAX_EXPONENT:返回int值,表示有限double变量可能具有的最大指数
  • MIN_EXPONENT:返回int值,表示标准化double变量可能具有的最小指数
  • NEGATIVE_INFINITY:返回double值,表示保存double类型的负无穷大值的常量。
  • POSITIVE_INFINITY:返回double值,表示保存double类型的正无穷大值的常量。

六、Number

抽象类Number是BigInteger、Byte、Double、Float、Integer、Long和Short类的父类,Number的子类必须是提供将表示的数值转换为byte、double、float、int、long和short的方法。例如,doubleValue()方法返回双精度值,floatValue()方法返回浮点值。

这些方法如下表所示:

在这里插入图片描述


Hello,各位亲爱的码友们!!!
    由我原创编写的JavaSE基础部分的文章到这里就要和大家说再见了,很感谢那些在背后默默支持默默阅读我
更新的文章的人,感谢你们的支持,也感谢你们愿意花费您宝贵的时间来阅读我这个Java小白写出来的文字,希
望我的文章对您有所帮助。
    从2020年4月17日我开始在CSDN上更新发表JavaSE基础部分的文章以来到今天已经整整87天了,这一路走
来让我学会了很多东西,让我明白做什么事情都贵在坚持。在这漫长又短暂的87天里,我有过坚持也有过懒惰,
有过成就感,也不止一次的想要放弃,但是我都坚持下来了。这样的方式我很喜欢,不仅加深了我对这部分内容
的认识,同时也磨练了自己耐心和毅力。
    写到这里并不是终止,我会加油,继续努力,好好学习,会学习更多的知识和这里的朋友们交流经验,共同
成长,共同进步。
    由衷的感谢CSDN平台给我这样的机会、感谢路过的码友们点开我的文章、感谢自己一直坚持到最后、感谢
    ......

																				7旅病娘
																	2020年7月12日19:48:57
  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

7旅病娘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值