2013-07-07 2 views
1

클래스를 정적으로 선언하고 내용이 정적이라면 클래스의 내용이 더 이상 정적이 아닙니다.Java 정적 수정 자 쿼리

다음은 Android의 Custom Adapter에서 ViewHolder를 사용했습니다. 내 코드는 다음과 같았다

는 :

static class ViewHolder { 
    static TextView blah; 
    //more widgets 
} 

목록보기는 반복적 인 데이터를했고 행은 스크롤을 단행했다.

그러나이 작업을 수행 할 때 중복이 생성되지 않았습니다. 기본적으로 생성 된 각 목록 항목 중 단 하나의 인스턴스가 있었으며 항목이 스크롤로 이동하지 않았습니다.

static class ViewHolder { 
    public TextView blah; 
    //more widgets 
} 

지금, 나는 public 기본 액세스 specifer 것을 알고 변화에 아무것도 할 필요가 없습니다. 이중 정적이 서로를 취소합니까? 이중 부정이 긍정적 인 것입니까?

+0

"그러나 내가 이것을했을 때 :"당신이 그렇게했을 때 무슨 일이 일어 났습니까? – codeMagic

+0

@codeMagic - 질문 수정 –

답변

1

정적 수정에 클래스는 내부 클래스 인 경우에만 의미가 있습니다. 정적 내부 클래스는 내부 클래스의 인스턴스가 외부 클래스의 인스턴스없이 독립적으로 존재할 수 있음을 의미합니다.

멤버 변수의 정적 수정자는 해당 클래스의 모든 인스턴스에 대해 해당 변수 복사본이 하나만 있음을 의미합니다.

따라서 멤버 변수에 정적 수정 자의 클래스에 정적 한정자가 미치는 영향은 없습니다.

+0

감사합니다. 그것은 완벽하게 이해가되었습니다. –

+0

그래서 여기서 일어난 일은 클래스의 인스턴스 하나를 생성했고 클래스는 변수의 인스턴스를 하나만 만들 수 있었기 때문에 실패했습니다. 그렇습니까? –

+0

첫 번째 경우에는 @Torcellite입니다. – Vikdor

0

이중 정적으로 서로 취소합니까?

번호

난 당신이 관찰하고 증상의 당신의 설명을 이해하지 않기 때문에 내가 더 이상 조언을 제공 할 수 없습니다 두려워)

+0

모호한 점에 대해 사과드립니다. 나는 그 질문을 편집했다. –