Java

[Java ] static & final

고인돌개발자 2021. 4. 18. 23:54

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

 

[Java 기초] static과 final의 조합

들어가기에 앞서 final과 static에 대해서 간략히 살펴보자 https://it-mesung.tistory.com/86?category=830540 [Java 기초] static static static은 컴파일러에 의해 .java에서 .class 파일로 로드될 시 우선적으..

it-mesung.tistory.com

 

참고 유투브 - www.youtube.com/watch?v=swsDO7-8fRo