学习-Java包装类之Integer类(1)

任务描述

本关任务:掌握 Integer 类的定义与方法的使用。

相关知识

Java 是个面向对象语言,所有的操作都是基于对象。Object 类是 Java 中的对象基础,所有 Java 中的类都有个共同的始祖 Object 类,Object 类可以表示任意类型数据。但 Java 中的一些基本类型数据,并不是对象,没有对象的操作。如何让对象类型与基础联系数据联系起来,这时就需要一个过渡类型数据,称为包装类。

包装类是对基本类型数据的包装,让基本数据类型“伪装”成类,具有类的特性,可以进行类的方法操作。

下表是基本数据类型与对应的包装类型。

基本数据类型包装类型
byteByte
booleanBoolean
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble

接下来我们将通过介绍包装类 Integer 来了解 Java 中的包装类。

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

Integer 类中的构造方法有以下两个:

  • Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值;
  • Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

例如,以下代码分别使用以上两个构造方法来获取 Integer 对象:

 
  1. Integer integer1 = new Integer(100); // 以 int 型变量作为参数创建 Integer 对象
  2. Integer integer2 = new Integer("100"); // 以 String 型变量作为参数创建 Integer 对象
方法返回值功能
byteValue()byte以 byte 类型返回该 Integer 的值
shortValue()short以 short 类型返回该 Integer 的值
intValue()int以 int 类型返回该 Integer 的值
toString()String返回一个表示该 Integer 值的 String 对象
equals(Object obj)boolean比较此对象与指定对象是否相等
compareTo(Integer
anotherlnteger)
int在数字上比较两个 Integer 对象,如相等,则返回 0;
如调用对象的数值小于 anotherlnteger 的数值,则返回负值;
如调用对象的数值大于 anotherlnteger 的数值,则返回正值
valueOf(String s)Integer返回保存指定的 String 值的 Integer 对象
parseInt(String s)int将数字字符串转换为 int 数值
toBinaryString(int i)String获取数字的二进制形式
toOctalString(int i)String获取数字的八进制形式
toHexString(int i)String获取数字的十六进制形式

下面为大家详细介绍这些方法的使用:

  • doubleValue():可以将 Integer 对象类型变成 double 的基础数据类型;
     
      
    1. public class TestDemo {
    2. public static void main(String[] args) {
    3. // 定义一个 Integer 对象类型的变量
    4. Integer a = new Integer(10);
    5. // 将 a 类型转变为 double 的基础数据类型
    6. double i = a.doubleValue();
    7. System.out.print(i);
    8. }
    9. }
    执行结果:
 
  1. 10.0
  • toString():返回一个表示该 Integer 值的 String 对象;

     
      
    1. // 定义一个 Integer 类型的变量
    2. Integer i1 = new Integer(3);
    3. // 将 Integer 值转化为 String 类型
    4. String s = i1.toString();
    5. System.out.print(s);

    执行结果:

     
      
    1. 3
  • valueOf(String s):返回保存指定的 String 值或数值型的 Integer 对象;

     
      
    1. String a = "12";
    2. // 将 String 型的数据转换为 Integer 对象
    3. Integer ai = Integer.valueOf(a);
    4. System.out.println(ai);

    执行结果:

     
      
    1. 12
  • parseInt:将数字字符串转换为 int 数值。

     
      
    1. public class TestDemo {
    2. public static void main(String[] args) {
    3. String a = "12";
    4. int v = Integer.parseInt(a);
    5. System.out.print(v);
    6. }
    7. }

    执行结果:

     
      
    1. 12

上面的例子都需要手动实例化一个包装类,称为手动拆箱装箱。Java 1.5(5.0) 之前必须手动拆箱装箱。

Java 1.5 之后可以自动拆箱装箱,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行,这将大大方便程序员的代码书写。

我们来看一下我们之前用的手动装箱的方法:

 
  1. int i = 10;
  2. Integer obj = new Integer(i); // 手动装箱

系统提供的自动装箱方法:

 
  1. Integet i = 10; // 自动装箱

其实自动装箱的原理就是调用包装类的 valueOf 方法。

 
  1. Integer i = Integer.valueOf(10);

与自动装箱相反,有装就有拆,自动拆箱即自动将包装类型转换成基本数据类型。

 
  1. Integet i = 10; // 自动装箱
  2. int i1 = i; // 自动拆箱

把 i 赋值给 i1 就是实现的自动拆箱功能,自动装箱的原理就是调用包装类的 xxValue 方法。

 
  1. Integet i = 10; // 自动装箱
  2. int i1 = i.intValue();

Integer 类包含以下 4 个常量:

  • MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值;
  • MIN_VALUE:值为 -231 的常量,它表示 int 类型能够表示的最小值;
  • SIZE:用来以二进制补码形式表示 int 值的比特位数;
  • TYPE:表示基本类型 int 的 Class 实例。

下面的代码演示了 Integer 类中常量的使用。

 
  1. int max_value = Integer.MAX_VALUE; // 获取 int 类型可取的最大值
  2. int min_value = Integer.MIN_VALUE; // 获取 int 类型可取的最小值
  3. int size = Integer.SIZE; // 获取 int 类型的二进制位
  4. Class c = Integer.TYPE; // 获取基本类型 int 的 Class 实例
/*
 * 根据所学的 Integer 类的相关知识,完成本关任务。
 */
public class Test {
    public static void main(String[] args) {
        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
        /********** Begin **********/
// 创建一个 Integer 对象,它表示指定的 int 值,值为 “123”,变量名命名为 i1
        int a = 123;
        Integer i1 = new Integer(a);
        // 创建一个 Integer 对象,它表示 String 参数所指示的 int 值,值为 “123”,变量名命名为 i2
        String str = "123";
        Integer i2 = new Integer(str);
        // 依次使用 == 和 equals 方法比较 i1 和 i2 是否相同
        boolean b1 = (i1 == i2);
        boolean b2 = i1.equals(i2);
        System.out.println("i1==i2的结果为" + b1);
        System.out.println("i1.equals(i2)的结果为" + b2);
        // 使用自动装箱的方法创建一个 Integer 对象,值为 “128”,变量名命名为 i3
        Integer i3 = 128;
        // 使用 compareTo 方法 依次比较 i3 和 i1、i2的大小以及 ii 和 i2 的大小
        int b3 = i3.compareTo(i1);
        int b4 = i3.compareTo(i2);
        int b5 = i1.compareTo(i2);
        System.out.println("i3和i1比较后的结果为" + b3);
        System.out.println("i3和i2比较后的结果为" + b4);
        System.out.println("i1和i2比较后的结果为" + b5);
        // 将 i2 转换为 int 类型,i1 转换为 String 类型
        int b = i2.intValue();
        String c = i1.toString();
        System.out.println("Integer->int结果为" + b);
        System.out.println("Integer->String结果为" + c);
        /********** End **********/
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摸鱼的三金

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

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

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

打赏作者

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

抵扣说明:

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

余额充值