ArrayBag的java概念
我在理解课堂幻灯片的一部分时遇到困难,幻灯片上说:
在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转换为双精度并添加新的
(我知道代码可能是bag.add(3.1416),Java会自动装箱,但我很难理解bag背后的含义。添加(新的双精度(3.1416))
# 1 楼答案
ArrayBag
既不是对象的特定类型也不是它的Obj变量,它实际上是一个类不,当
AutoBoxing
进入图片(Java 1.5及以上版本)并将double
转换为Double
ie从原语转换为对象时,不需要显式地强制转换double
bag
实际上是ArrayBag
的一个实例,而add()
是这个类中定义的一个方法,它接受类型为Object
的参数,并可能将其添加到items
数组中,该数组只不过是Object
的数组