为什么在对象数组类内部创建对象数组?

时间:2018-09-28 07:08:54

标签: java android arrays

head first android development page

因此,我正在阅读第一本最重要的android开发书,并且其中一页上有些困惑。

通过代码,它显示了使用(new Drink())在对象数组类本身内部创建的对象数组。这让我有些困惑,因为我认为通常会在主对象而不是对象本身中创建数组。 谁能帮忙解释原因?

谢谢。!

2 个答案:

答案 0 :(得分:3)

正如注释中所述,constructor类的Drink被设置为私有,因此无法在该类之外初始化Drink对象

创建了drinks数组后,您可以快速轻松地(尽管不是传统的 )访问所述对象的实例。

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

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

答案 1 :(得分:1)

  

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

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

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

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

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