因此,我正在阅读第一本最重要的android开发书,并且其中一页上有些困惑。
通过代码,它显示了使用(new Drink())在对象数组类本身内部创建的对象数组。这让我有些困惑,因为我认为通常会在主对象而不是对象本身中创建数组。 谁能帮忙解释原因?
谢谢。!
答案 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
实例。