可以给我一个关于将对象放入数组的具体解释吗?
我知道您可以将数字放入数组中,然后使用这些数字操作,排序或执行其他功能。但是,我很难理解如何使用数组中的对象来完成此操作。
如果我错了,请纠正我,但似乎一个对象就像一个类,一个类是一个蓝图。那么,当你在数组中放入不同的对象时,你不是在同一个数组中放入不同的“蓝图”吗?这是如何运作的?这样做的用处是什么?
或者,您是否只能将同一个类中的对象放在一个数组中,而不是同一个数组中不同类的对象?
答案 0 :(得分:1)
类是用于创建对象的模板。该类是某种类型的对象(String类型的对象是使用名为java.lang.String.class的类创建的)。您可以通过在对象上调用getClass()来查找对象的类。该类与用于创建的对象分开。
对象数组具有对象的引用。对象存在于内存中的某个位置,该数组具有指向它们的指针。对数组进行排序时,代码将跟随引用以查找对象中的数据,然后将引用重新分配给不同的数组元素。
此外,如果你有一个Object(Object [])数组,你可以在其中放置任何类的对象。
答案 1 :(得分:0)
在正常情况下,它只将一种类型的对象放入数组中。 您可以使用arrayList限制类型。
答案 2 :(得分:0)
在java中,一切都是Object [除了primitives - int,float等]。甚至Array也是一个对象。
我们不将对象放入数组中。我们将对象引用存储在数组中。您的对象位于堆上,其引用将位于堆栈上。
在声明数组时,我们声明它是什么类型的对象。如果我将数组声明为MyClass类型的对象,
MyClass[] arr = new MyClass[10];
然后我可以在我的数组中存储MyClass的所有对象和MyClass子类的对象。你不能存储任何其他对象,我们将收到编译错误。
但是,如果我们将数组声明为Object类型,
Object[] obj = new Object[5];
然后我们可以在数组中插入任何对象引用。
为什么我们在数组中使用对象?
假设我有三个MyClass对象,我想将这些从Java传递到相应的JSP。我可以通过创建一个数组并将所有三个对象存储在其中然后将数组传递给Jsp来实现。