📜  Java需要包装类

📅  最后修改于: 2022-05-13 01:55:48.567000             🧑  作者: Mango

Java需要包装类

首先,程序员遇到的问题是,当我们拥有原始数据类型时,为什么在Java需要包装类的概念。这是因为在使用时,Wrapper 类中的附加功能超过了原始数据类型。这些方法主要包括valueOf()parseInt()toString()等方法。

包装类包裹(包围)一个数据类型并赋予它一个对象外观。包装类是最终的和不可变的。包装类中有两个概念,即自动装箱和拆箱。

自动装箱是将原始值转换为相应包装类的对象的过程称为自动装箱。例如,将 int 转换为 Integer 类。 Java编译器适用自动装箱时,原始值是:

  • 作为参数传递给需要相应包装器类的对象的方法。
  • 分配给相应包装类的变量。

开箱 将包装类型的对象转换为其相应原始值的过程称为拆箱。例如整数到整数的转换。 Java编译器适用拆箱时的包装类的对象是:

  • 作为参数传递给需要相应原始类型的方法。
  • 分配给相应原始类型的变量。

现在让我们开始讨论包装类的有用特性,它们如下所列:

  1. 它们将原始数据类型转换为对象。如果我们希望修改传递给方法的参数,则需要对象(因为原始类型是按值传递的)。
  2. Java.util 包中的类只处理对象,因此包装类在这种情况下也有帮助。
  3. Collection 框架中的数据结构,例如 ArrayList 和 Vector,只存储对象(引用类型)而不存储原始类型。
  4. 需要一个对象来支持多线程中的同步。

包装类提供的主要重要特性之一是许多实用方法。假设我们有一个浮点值,并且我们想要找到该浮点数的整数值,那么我们有一个特定的方法,如下图所示。

插图:

如果我们想创建一个字符串或者一个字符串的布尔值的整数值。我们可以在包装类的帮助下做到这一点。

语法:从其他数据类型创建

Integer hundred = Integer.valueOf("100");
Boolean value = Boolean.valueOf("True");

例子:

Java
// Java Program to Show Wrapper class concept
 
// Importing input output classes
import java.io.*;
 
// Main Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // In java, in case f floating values
        // they are stored as x = (y)f
 
        // Conversion of float value to int
        Float floatWrap = Float.valueOf(45.158f);
 
        // Invoking the intValue() method over the stored
        // float value to store
        int floatToInt = floatWrap.intValue();
 
        // Print the non-primitive(Integer) value
        System.out.println(floatToInt);
 
        // Now for another number N
        // Say N = 5
 
        // Convert the binary number to the integer value
        Integer five = Integer.valueOf("101", 2);
 
        // Print the number
        System.out.println(five);
    }
}


输出
45
5