ArrayBag 的概念
Concept of ArrayBag
我无法理解 class 幻灯片的一部分,上面写着:
在 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) ).
Is ArrayBag a specific type of object or is it just a Obj variable
name?
ArrayBag
既不是特定类型的对象也不是对象变量,它实际上是Class.
Why do we need to cast 3.1416 as a Double and add a new?
不,当 AutoBoxing
出现时(Java 1.5 及更高版本),您无需显式转换 double
并将 double
转换为 Double
即从原始到对象。
I'm having trouble understanding the meaning behind bag.add(new
Double(3.1416)
bag
其实是ArrayBag
的一个实例,而add()
是这个class中定义的一个方法,它接受一个Object
类型的参数并可能将其添加到 items
数组中,它不过是 Object
的数组。
我无法理解 class 幻灯片的一部分,上面写着:
在 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) ).
Is ArrayBag a specific type of object or is it just a Obj variable name?
ArrayBag
既不是特定类型的对象也不是对象变量,它实际上是Class.
Why do we need to cast 3.1416 as a Double and add a new?
不,当 AutoBoxing
出现时(Java 1.5 及更高版本),您无需显式转换 double
并将 double
转换为 Double
即从原始到对象。
I'm having trouble understanding the meaning behind bag.add(new Double(3.1416)
bag
其实是ArrayBag
的一个实例,而add()
是这个class中定义的一个方法,它接受一个Object
类型的参数并可能将其添加到 items
数组中,它不过是 Object
的数组。