Q) static 과 fianl 은 왜 자주 붙어 다니는가?
A) static 은 전역의 의미를 갖게한다. 물론, public, private, defaul, protected 의 영향을 받는다.
final 은 변경을 허용하지 않는다는 뜻이다.
즉 전역상수(변하지않는 값)로 사용할 경우가 있어서, 둘이 붙어다니는 경우가 많다.
ex) public class Family{
public static final String strLove ="Y"; // 어디서나 누구나가 물어봐도, 가족을 사랑한다라고 정해져 있다.
}
System.out.println(Math.PI); // 3.14 불변의진리 값을 가진다. 이 값도 static finally 로 선언되어 있을것으로 보인다.
Q) static 은 언제 사용하는가?
A) 위와 같이 전역함수, 전역변수로 사용할 경우 사용한다.
전역의 의미이기 때문제 자주 사용하지는 않는다.
main() 메소드는 어디서나 JVM 에 의해 호출되어야 하기 때문에 public static 으로 선언된다.
* static 은 class 멤버 변수로는 사용 가능하나, method 변수로는 사용 불가하다.
Q) final 은 언제 사용하는가?
A) 주로 변수에 사용되며 , 상수로 사용되어 절대적으로 변하지 않는 값에 사용한다.
class 앞에 사용 시 - 절대값이기때문에 상속을 할 수 없다. 인터페이스 또한 선언되어지지 않는다.
method 앞에 사용 시 - 인터페이스에서 선언되지 않는다. (오버라이딩이 안됨)
- 상속할 경우 그대로 사용 가능, 오버라이딩이 안된다.
결론 - static final 은 전역변수로 사용할 경우 주로 사용한다.
참고 블로그 - it-mesung.tistory.com/121
참고 유투브 - www.youtube.com/watch?v=swsDO7-8fRo
'Java' 카테고리의 다른 글
[Interface] 인터페이스에 대한 수준낮은 고찰 (0) | 2021.04.28 |
---|---|
Abstract vs Interface (0) | 2021.04.24 |
[JAVA] Servlet , Beans 차이가 뭔가? (4) | 2021.04.21 |
[JAVA] Collection & Map (0) | 2021.04.19 |
[Java] 접근 제어자 public, private, protected, default 는 무엇인가? (0) | 2021.04.18 |