Java 为什么要在对象数组类中创建对象数组?

Java 为什么要在对象数组类中创建对象数组?,java,android,arrays,Java,Android,Arrays,因此,我正在阅读首部android开发书籍,其中一页有点困惑 从代码中,它显示了使用(new drink())在对象数组类内部创建的对象数组。这让我有点困惑,因为我认为数组通常是在main中创建的,而不是在对象本身中创建的。 有人能解释一下原因吗 谢谢 正如注释中所述,饮料类的构造函数设置为私有,因此无法初始化该类之外的饮料对象 创建饮料数组可以让您快速轻松地(尽管不是传统的,如果您愿意的话)访问所述对象的实例 看到这是一个教程,我的猜测是,最终,构造函数将被标记为public,作者将介绍一个服

因此,我正在阅读首部android开发书籍,其中一页有点困惑

从代码中,它显示了使用(new drink())在对象数组类内部创建的对象数组。这让我有点困惑,因为我认为数组通常是在main中创建的,而不是在对象本身中创建的。 有人能解释一下原因吗


谢谢

正如注释中所述,
饮料
类的
构造函数
设置为私有,因此无法初始化该类之外的
饮料
对象

创建
饮料
数组可以让您快速轻松地(尽管不是传统的,如果您愿意的话)访问所述对象的实例

看到这是一个教程,我的猜测是,最终,构造函数将被标记为
public
,作者将介绍一个服务或其他机制的概念,您的Android应用程序将使用它来获取
饮料
对象


理论上,服务层可以从文件、服务(REST、SOAP等)、数据库或其他数据源获取这些对象。

正如注释中所述,
饮料类的
构造函数
设置为私有,因此,您无法在该类之外初始化
Drink
对象

创建
饮料
数组可以让您快速轻松地(尽管不是传统的,如果您愿意的话)访问所述对象的实例

看到这是一个教程,我的猜测是,最终,构造函数将被标记为
public
,作者将介绍一个服务或其他机制的概念,您的Android应用程序将使用它来获取
饮料
对象

理论上,服务层可以从文件、服务(REST、SOAP等)、数据库或其他数据源获取这些对象

这让我有点困惑,因为我认为数组通常是在main中创建的,而不是在对象本身中创建的

不。在Android开发中,您几乎从不使用
main
方法编写代码

可以在许多地方创建
饮料[]
。在您的示例中,类
Drink
中有一个名为
drinks
的静态字段。将创建一个饮料数组以分配给该字段

饮料
字段的用途很可能是方便访问不同类型的饮料,如拿铁和卡布奇诺。您不必在客户端代码中创建饮料对象。您可以只使用
饮料.饮料[0]
饮料.饮料[1]
。此外,
Drink
构造函数是私有的,因此
drinks
数组也是从外部访问
Drink
对象的唯一方法

一开始,在该类中有一个类的实例似乎是违反直觉的,甚至是自相矛盾的。但请注意类是如何作为引用类型的
Drink
只是存储对其他
Drink
对象的引用。更不用说
饮料
是静态的,因此它属于类本身,而不是
饮料
实例

这让我有点困惑,因为我认为数组通常是在main中创建的,而不是在对象本身中创建的

不。在Android开发中,您几乎从不使用
main
方法编写代码

可以在许多地方创建
饮料[]
。在您的示例中,类
Drink
中有一个名为
drinks
的静态字段。将创建一个饮料数组以分配给该字段

饮料
字段的用途很可能是方便访问不同类型的饮料,如拿铁和卡布奇诺。您不必在客户端代码中创建饮料对象。您可以只使用
饮料.饮料[0]
饮料.饮料[1]
。此外,
Drink
构造函数是私有的,因此
drinks
数组也是从外部访问
Drink
对象的唯一方法


一开始,在该类中有一个类的实例似乎是违反直觉的,甚至是自相矛盾的。但请注意类是如何作为引用类型的
Drink
只是存储对其他
Drink
对象的引用。更不用说
饮料
是静态的,因此它属于类本身,而不是
饮料
实例。

它在静态块中初始化。不是我会这样做,但我认为这是因为构造器是私有的(所以你不能从外部创建其他饮料),好的是它是静态的,你有一个有限的饮料列表,但对我来说,看到这个结构也很奇怪。如果我有一个静态的和有限的饮料列表(因为构造函数是私有的)我宁愿去一个Enumeration@vmrvictor也许客户端代码需要通过索引访问饮料?它正在静态块中初始化。我不会这样做,但它是有效的。我想这是因为构造函数是私有的(因此您无法从外部创建其他饮料),好的是它是静态的,并且您有一个有限的饮料列表,但是对于我来说,看到这个构造也很奇怪。如果我有一个静态的、有限的饮料列表(因为构造函数是私有的)我宁愿去看电影Enumeration@vmrvictor也许客户端代码需要通过索引访问饮料?感谢帮助,非常感谢。我仍在慢慢学习android开发。感谢帮助,非常感谢。我仍在慢慢学习android开发。最终,构造函数将标记为public-or在本教程的后面部分,他们将使用
Builder
模式来构建外部
ar