为什么Java中有包装器类?
我知道什么是包装类,它们将基本类型(例如int、double等)包装到各自类的对象为什么Java中有包装器类?,java,Java,我知道什么是包装类,它们将基本类型(例如int、double等)包装到各自类的对象 但是,为什么我们首先需要包装器类呢?为什么不直接使用我们拥有的基元类型呢?Am在集合中使用包装器的示例,您可以有一个ArrayList,但不是与HashMap等相同的ArrayList。为了获得类型安全性,我们使用泛型,泛型需要对象而不是原语。几个可能的原因: 因此可以使用空值 收藏 将一般/多态性与其他对象一起视为对象 我脑子里想不出的一个实用理由是,对象可以为空,原语不能*。如果我不能确保函数可以返回int
但是,为什么我们首先需要包装器类呢?为什么不直接使用我们拥有的基元类型呢?Am在集合中使用包装器的示例,您可以有一个
ArrayList
,但不是与HashMap等相同的ArrayList
。为了获得类型安全性,我们使用泛型,泛型需要对象而不是原语。几个可能的原因:
- 因此可以使用空值
- 收藏
- 将一般/多态性与其他对象一起视为对象
- Java使用基本类型,如int、char、double来保存 该语言支持的基本数据类型
- 有时需要创建这些对象的对象表示 基本类型
- 这些是仅处理此类对象的集合类。一个 需要在类中包装基元类型
- 为了满足这一需求,java提供了对应于每种基本类型的类。基本上,这些类封装或包装类中的基元类型
- 因此,它们通常被称为类型包装器。类型包装器 是在对象中封装基元类型的类
- 包装类型有字节、短、整数、长、字符、, 布尔型,双精度,浮点型
- 作为期望对象的方法的参数(通常在 操纵数字集合)
- 使用类定义的常量,例如MIN_值和 最大值,提供数据类型的上限和下限
- 使用类方法将值转换为其他 基本类型,用于在字符串之间进行转换,以及 在数字系统(十进制、八进制、十六进制、, 二进制) 资料来源:
- 我脑子里想不出的一个实用理由是,对象可以为空,原语不能*。如果我不能确保函数可以返回int,那么使用包装器是处理获取所需int的唯一方法。自动装箱负责其余部分。当需要对象时,使用包装类而不是基元类型
例如,在集合中,ArrayList可能包含对象的任何子类的实例,但由于基元类型不是对象,它们不能包含在ArrayList中。Java是一种面向对象的编程语言。我想你也可以问-为什么我们有原语,为什么一切都不仅仅是一个对象 Java设计人员将这两个部分分开,以保持简单。当您需要适合面向对象世界的类型(如多态性、集合等)时,可以使用包装器。当您需要效率时,可以使用原语 Java是一种面向对象的语言,正如所说的,Java中的一切都是面向对象的 物体。但是原语呢?他们有点被排除在外了 对象的世界,即它们不能参与对象 活动,例如作为对象从方法返回,以及 正在添加到对象集合等。为了解决这个问题 问题是,Java允许您将原语包含在 通过使用所谓的包装器类来创建对象 包装类:
包装类用于将任何基元类型转换为对象。基元数据类型不是对象,它们不属于任何类,它们是在语言本身中定义的。当存储在只支持对象的数据结构中时,需要首先将基元类型转换为对象,因此我们选择包装类。使用数字对象而不是基元有三个原因:
另请参见:在代码中保留简单的语法,并允许在直观的位置放置有用的静态助手方法。Double.compare是一个很好的示例泛型是在包装类之后很久才引入的(JDK1.1)我想你也可以问一下,为什么我们有原语,为什么所有的东西都不仅仅是一个对象?为什么我们需要多态性中的包装类?你能提供一个例子吗?请@samitgaurI不要得到第2项。无论如何,您不应该使用类似于
i.MAX\u值的东西。此外,MIN\u值
/MAX\u值
常量为基元类型。