为什么以及何时我们可以直接实例化一个类
Human human1 = new Human("john", "doe");
为什么以及何时检索已经完成的实例的引用?
Context.getSystemService(Context.TELEPHONY_SERVICE).
答案 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对象最终将被垃圾收集而不被使用。这是一个基本问题的基本答案,如果您想要更高级的答案,请提出更具体的问题。