1

我无法理解课堂幻灯片的一部分,上面写着:

将项目存储在 ArrayBag 中:
我们将项目存储在 Object 类型的数组中。

public class ArrayBag implements Bag {
    private Object[] items; 
    private int numItems; 
....
}  

这允许我们在 items 数组中存储任何类型的对象,这要归功于多态性的力量:

ArrayBag bag = new ArrayBag(); 
bag.add("hello"); 
bag.add(new Double(3.1416)); 

ArrayBag 是一种特定类型的对象还是只是一个 Obj 变量名?
为什么我们需要将 3.1416 转换为 Double 并添加一个新的?
(我知道代码可能只是 bag.add(3.1416),Java 会为您自动装箱,但我无法理解 bag.add(new Double(3.1416)) 背后的含义。

4

1 回答 1

0

ArrayBag 是一种特定类型的对象还是只是一个 Obj 变量名?

ArrayBag既不是特定类型的对象也不是Obj 变量,它实际上是一个Class

为什么我们需要将 3.1416 转换为 Double 并添加一个新的?

不,您不需要显式地将doubleasAutoBoxing转换为图片(Java 1.5 及更高版本)并将其转换doubleDoubleie 从原始到对象。

我无法理解 bag.add(new Double(3.1416) 背后的含义

bag实际上是 , 的一个实例 ArrayBag,并且add()是在这个类中定义的一个方法,它接受一个类型的参数,Object并且可能将它添加到items数组中,这只是一个 . 的数组Object

于 2015-07-18T19:52:33.987 回答