2012-10-14 7 views
-3

정적이 아닌 객체에 정적 객체를 할당하면 어떻게 될까요? 예를 들어 :정적 객체를 정적 객체가 아닌 객체에 할당하면 어떻게됩니까?

public class Test{ 
    public void test(){ 
     BoneCp cp=BoneCpLoad.getBoneCpPool(); 
    } 
} 

public class BoneCpLoad{ 
    private static BoneCpPool pool =new BoneCpPool(); 
    public static BoneCp getBoneCpPool(){ 
     return pool; 
    } 
} 
+0

이것은 실제로 질문이 아닙니다 ... – OmniOwl

+0

아니야. 'getBoneCpPool()'이 새로운 객체를 반환합니다 ... – slugonamission

+0

'new BoneCpPool'이 객체를 생성했습니다 ... –

답변

1

정적 개체는 실제로 존재하지 않습니다.

이 경우 정적 키워드는 getBoneCpPool() 메소드를 참조합니다. 이것은 완벽하게 합법적이며 static 메소드는 BonceCp 객체의 인스턴스를 반환합니다.

static 수정 자 키워드는 메소드에 적용 할 수 있으며 클래스의 특정 인스턴스에는 속하지 않지만 클래스 자체에는 속하지 않는 메소드를 나타냅니다.

static 수정 자 키워드는 필드에도 적용 할 수 있습니다 (실제로는 정적 참조). 이 경우 클래스의 특정 인스턴스에 속하지 않지만 동일한 유형의 모든 클래스 인스턴스간에 공유되는 필드를 나타냅니다.

+0

대단히 감사합니다 :) – olyanren

0

이 정말 비 정적 객체에 정적 객체를 할당하지 않습니다.

BoneCp cp = BoneCpLoad.getBoneCpPool(); 

이 라인 오브젝트의 바로 정상적인 실체화 어느

BoneCp cp = new BoneCpPool(); 

동일하다.

0

이 전체 질문은 잘못된 전제에 근거합니다.

자바에서는 static 개체가 없습니다. 모든 개체는 힙에 저장되며 수명은 도달 가능성에 따라 결정됩니다.

여기 이고, 변수는 static입니다. 그러나 static 변수에 대한 참조를 지정하면 특별한 일이 발생하지 않습니다. 이제 변수에 객체에 대한 참조 만 포함됩니다. 마찬가지로 static 변수의 참조를 다른 변수에 할당하면 특별한 일이 발생하지 않습니다.

관련 문제