有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    Is ArrayBag a specific type of object or is it just a Obj variable name?

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

    Why do we need to cast 3.1416 as a Double and add a new?

    不,当AutoBoxing进入图片(Java 1.5及以上版本)并将double转换为Doubleie从原语转换为对象时,不需要显式地强制转换double

    I'm having trouble understanding the meaning behind bag.add(new Double(3.1416)

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