Why are interface variables static and final by default in Java?
[Java] 왜 Java의 인터페이스 내에 있는 변수는 기본적으로 static이고 final인가요?
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:
|