我无法理解课堂幻灯片的一部分:
在ArrayBag中存储项目:
我们将项目存储在Object类型的数组中。
SELECT DISTINCT T2.*
FROM T2
JOIN T1
ON T1.ID = T2.ID
LEFT JOIN T1 AS T1NO
ON T1NO.NAME = T2.NAME
WHERE T1NO.NAME IS NULL
由于多态性的强大功能,我们可以在items数组中存储任何类型的对象:
public class ArrayBag implements Bag {
private Object[] items;
private int numItems;
....
}
ArrayBag是一种特定类型的对象还是只是一个Obj变量名?
为什么我们需要将3.1416转换为Double并添加新的?
(我知道代码可能只是bag.add(3.1416)而Java会为你自动代码,但我无法理解bag.add(new Double(3.1416))背后的含义。
答案 0 :(得分:0)
ArrayBag是一种特定类型的对象,还是只是一个Obj变量 命名
ArrayBag
既不是特定类型的对象,也不是 Obj变量,它实际上是类。
为什么我们需要将3.1416转换为Double并添加新的?
不,您无需明确地将double
转换为AutoBoxing
进入图片(Java 1.5及更高版本)并将double
转换为Double
,即从原始对象转换为对象。
我无法理解bag.add背后的含义(新的 双(3.1416)
bag
实际上是ArrayBag
的一个实例,add()
是此类中定义的方法,它采用类型为Object
的参数,可能会将其添加到items
数组,它只是一个Object
数组。