2013-05-01 1 views
0

왜 우리는 클래스에 직접클래스 인스턴스

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

왜 우리는 인스턴스에 대한 참조를 검색 할 때 이미 수행을 인스턴스화 할 때?

Context.getSystemService(Context.TELEPHONY_SERVICE). 
+0

문맥을 조금 더 주시겠습니까? 아니면 매우 광범위하게 객체 인스턴스화에 대해 묻고 있습니까? –

+0

나는 광범위한 용어를 추측합니다. – tony9099

답변

1

당신은 단지 클래스 A에 대한 참조를 검색 할 수 있습니다 : 당신은 당신이 원하는 기준을 얻을 수있는 적절한 액세스가있을 때 : 당신이 그 자체와 B를 인스턴스화되고 알고. 이 작업을 수행하는 이유는 이미 작성된이 인스턴스에서 수행하려는 작업이 일부 있기 때문이며이 작업을이 인스턴스의 향후 사용 (예 : John Doe의 성 변경)에서 사용할 수 있기를 원합니다.

반면에 항상 새 개체를 인스턴스화 할 수 있지만 항상 유용하지는 않습니다.

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

첫 번째 줄은 쓸모이며,이 존, 미상, 객체가 결국 쓰레기가 사용되지 않고 수집됩니다 예를 들어 다음을 수행 할 이유가 없습니다. 이것은 기본적인 질문에 대한 기본 대답입니다.보다 진보 된 대답을 원하면보다 구체적인 질문을하십시오.

2

클래스 생성자를 호출 할 때마다 클래스의 새 인스턴스를 만듭니다. 당신의 예제에서 당신은 서로 독립적으로 존재하는 "John Doe"를위한 여러 개의 Human 인스턴스를 가질 수 있습니다.

Context.getSystemService(...)으로는 singelton을 참조하십시오. 모든 Android 앱은 동일한 TELEPHONY_SERVICE 인스턴스와 comunicate됩니다.