Концепция ArrayBag

У меня возникают проблемы с пониманием части слайда класса, которая говорит:

Хранение элементов в 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 (новый Double(3.1416)).

1 ответ

Решение

Является ли ArrayBag конкретным типом объекта или это просто имя переменной Obj?

ArrayBag не является ни конкретным типом объекта, ни его переменной Obj, на самом деле это класс.

Почему мы должны разыграть 3.1416 как Double и добавить новый?

Нет, вам не нужно явно разыгрывать double как AutoBoxing входит в изображение (Java 1.5 и выше) и конвертировать double в Double то есть от примитива к объекту.

У меня проблемы с пониманием смысла bag.add(новый Double(3.1416)

bag на самом деле является примером ArrayBag, а также add() это метод, определенный в этом классе, который принимает параметр типа Object и может быть добавить его в items массив, который является ничем иным, как массивом Object,

Другие вопросы по тегам