Java 中的包装类:它是什么,我们为什么需要它?
已发表: 2021-12-23Java 致力于 OOP(面向对象编程)的概念。 尽管如此,Java 不能被视为一种完整的面向对象语言。 这是因为 Java 使用八种原始数据类型——byte、short、int、float、long 和 double。 这些 Java 数据类型不是对象,这使得 Java 不是完全面向对象的。
但是,包装类通过将原始数据类型转换为对象,提供了一种绕过该限制的好方法。 这样,包装类使 Java 代码完全面向对象。
对于从 Java 编程语言开始的每个人来说,这是最重要的概念之一。 让我们通过这篇文章来帮助你。 首先,我们将了解 Java 中的包装类以及我们为什么需要它们以及它们的优点。 在本文的结尾,您将能够使用包装类而不会感到困惑!
从世界顶级大学学习在线软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
目录
Java中的包装类
软件开发人员经常偶然发现需要他们不使用原始数据类型而是使用对象的情况。 为了实现这种原始数据类型到对象的转换,Java 为程序员提供了包装类的概念。 此类有助于从原始数据类型到对象以及从对象到原始数据类型的转换。
创建包装类会自动创建一个存储原始数据类型的新字段。 包装类的对象然后保存原始数据类型。 这种使用包装类将原始数据类型转换为对象的过程称为装箱。 在使用包装类时,您需要将原始数据类型的值传递给包装类的构造函数。
六个包装类——byte、short、int、float、long 和 double——都是数字类的子类,数字类是一个抽象类。 剩下的两个包装类——布尔和字符——是对象类的子类。
以下是不同原始数据类型的包装类的快速摘要,以及创建包装类所需的构造函数参数:
为什么需要 Java 中的包装类?
Java 中的包装类适用于程序需要使用对象而不是原始数据类型的情况。 从这个意义上说,包装类帮助 Java 程序 100% 面向对象。 除此之外,由于以下原因,需要 Java 中的包装类:
- 将不同原始数据类型的值绑定到对象中。 这有助于执行复杂的操作并使用 HashMap、ArrayList 等集合。
- 提供可用于原始数据类型的不同实用功能。
- 由于原始数据类型不能被赋予空值,但包装类可以,它们也可以作为将空值分配给任何原始数据类型的解决方法。
在 Java 中使用包装类有什么好处?
Java 中的包装类提供以下主要好处:
- 它们帮助代码可序列化。 这是因为序列化需要将对象转换为流。 如果程序员想要序列化一个原始值,必须首先使用包装类将其转换为对象。
- 它们有助于同步,因为 Java 中的多线程同步需要对象。
- 原始数据可以从 Java.util 包的各种 util 类中受益。
- 使用包装类可以使用集合框架。
- 将原始数据类型转换为对象可以使用按值调用方法更改函数内部的值。
- Java 中的包装类确保程序是多态的。
例子
1.将原始类型转换为对象
公共类示例{
公共静态无效主要(字符串参数[]){
//将浮点原语转换为浮点对象
浮动 n=10.10;
浮点 obj=Float.valueOf(n);
System.out.println(n+ ” “+ obj);
}
}
输出:
10.10 10.10
如输出所示,原始数据和对象都具有相同的值。 因此,您可以根据情况使用 obj 或 n 访问相同的值,无论您喜欢什么。
2. 将对象转换为原始类型
公共类示例{
公共静态无效主要(字符串参数[]){
//创建包装对象
浮动 o= 新浮动(50.00);
//将对象转换为原始对象
浮动 n= obj.floatValue();
System.out.println(n+ ” “+ o);
}
}
输出:
50.00 50.00
在上面的示例中,浮点对象已转换回浮点原始数据类型。 同样,您可以使用 Java 中的包装类进行大量转换和操作。 包装类可以使用不同的函数。 该讨论超出了本文的范围,但我们建议您深入探索包装类,以及处理包装类时需要使用的不同函数。
综上所述
与包装类一样,您还需要掌握许多其他基本概念和想法才能在软件开发中脱颖而出。 在 upGrad,我们为全球各地的学生提供了指导,并帮助他们在自己想要的领域开始了自己的职业生涯。 我们的个性化培训课程和专家主导的案例研究讨论可帮助学生掌握所有获得的概念。
为了帮助学生开始他们的软件开发生涯,我们向您展示了一个由专家和行业领导者创建的为期 5 个月的在线计划——软件工程中与工作相关的 PG 认证。 除了教您该领域的所有细微差别外,该计划还将帮助您进入顶级公司。 因此,请查看本课程并立即注册!
为什么 Java 中需要包装类?
包装类是 Java 的基础,因为它们帮助 Java 程序完全面向对象。 默认情况下,java 中的原始数据类型不是对象。 它们需要使用包装类转换为对象。
Java 中有多少个包装类可用?
Java 中包装类的数量与 Java 支持的原始数据类型的数量相同,即 8 个。
Java中的包装类是可变的吗?
是的,包装类是可变的。