http://stackoverflow.com/questions/2430756/why-are-interface-variables-static-and-final-by-default
Q: 왜 Java의 인터페이스 내에 있는 변수는 기본적으로 static이고 final인가요?
(역주: Class에는 내에는 변수를 당연히 선언할 수 있습니다. Interface 내에도 변수를 선언할 수는 있지만, 항상 static - 인터페이스 내에 단 하나만 존재 - 이고, final - 수정 불가 - 입니다. 즉 인터페이스에는 하드코딩으로만 변경할 수 있는 설정 값 등은 넣을 수 있습니다. 만약 인터페이스에 변수를 넣어야 할 경우라면, abstract class를 만들어 상속을 받는 쪽으로 설계를 변경하는 것을 고려해 보는게 좋습니다.)
(질문자: Jothi)
|
A: 필립 샤우 씨가 쓴 "Java interface design FAQ" 책에 따르면, 아래와 같습니다.
인터페이스의 변수는 static(정적)인데, 그 이유는 인터페이스의 변수는 스스로 초기화 될 권한이 없기 때문입니다. 이 변수의 값은 static context 내에서 할당되어야 하는데, 이때는 아무 인스턴스도 존재하지 않는 시점입니다. final 제어자는 인터페이스의 변수에 할당된 값이 프로그램 코드에 의해 수정하는 것이 불가능함을 보장하여, 이 값이 항상 상수가 되도록 만들어줍니다.
(답변자: cherouvim)
_
|
_
142 | From the Java interface design FAQ by Philip Shaw:
|
'StackOverflow ' 카테고리의 다른 글
Stack Overflow Reputation 1000점을 달성! (0) | 2017.11.28 |
---|---|
[소프트웨어 공학] Association, Aggregation, Composition 에 대한 설명 (0) | 2016.11.29 |
[Android] 스크린 캡쳐를 막는 방법 (0) | 2016.04.08 |
[Android] Receiver에 리모트 프로세스(process =“:remote”)를 해줘야 할 이유가 있나요? (0) | 2016.04.06 |
[Android, Python] 안드로이드에서 파이썬을 이용할 수 있나요? (0) | 2016.03.10 |