类实例化与通过引用检索

时间:2013-05-01 15:45:12

标签: java android class instantiation objectinstantiation

为什么以及何时我们可以直接实例化一个类

Human human1 = new Human("john", "doe");

为什么以及何时检索已经完成的实例的引用?

Context.getSystemService(Context.TELEPHONY_SERVICE). 

2 个答案:

答案 0 :(得分:2)

每次调用类构造函数时,都会创建该类的新实例。在您的示例中,您可以为“John Doe”创建多个彼此独立存在的Human实例。

使用Context.getSystemService(...),您会获得对singelton的引用。每个Android应用程序将与相同的TELEPHONY_SERVICE实例通信。

答案 1 :(得分:1)

您只能检索对A类的引用:当您知道它已经被实例化时,B:当您有适当的访问权限获取所需的引用时。你这样做的原因是因为你想在这个已经创建的实例上做一些工作,并且你希望这个工作可以用于此实例的未来使用,例如更改John Doe的姓氏。

另一方面,您始终可以选择实例化一个新对象,但它并不总是有用。例如,没有理由执行以下操作:

Human human1 = new Human("John", "Doe");
human1 = SomeHumanThatAlreadyExists;

第一行是没用的,这个John,Doe对象最终将被垃圾收集而不被使用。这是一个基本问题的基本答案,如果您想要更高级的答案,请提出更具体的问题。