Categories: Java 언어Korean

Java 총 정리[72. final]

final

이전 걸음에서는 알아두면 좋은 명령어인 equals에 대해서 공부를 했습니다. 이번에 이어지는 걸음에서 간단하게 모두가 알고 있지만 좀 더 자세하게 알지 못하는 명령어에 대해서 이번 걸음에서 함께 공부를 해보도록 하겠습니다.

이번 걸음에서는 final이라는 명령어를 공부를 해보도록 하겠습니다. 많이 사용이 안되는 부분이 있어서 간단하게 알고는 있지만 좀 더 자세한 부분을 모르는 경우가 있어서 이번 걸음에서 final에 대해서 좀 더 자세하게 알려드리겠습니다. 이번 걸음을 끝까지 보신다면 final에 대해 좀 더 깊이가 생기실 수 있습니다.

final이란 무엇인지 그리고 예제 소스를 하면서 final이 붙으면 동작이 어떻게 하는지 이번 걸음에서 알아보도록 하겠습니다. 내용이 많이 어려운 부분은 아니지만 이번 걸음에서 확실히 알아 두시면 final에 대해 확실하게 사용하고 이해를 하실 수 있습니다.

final 이란?

final은 마지막이라는 뜻을 가지고 있습니다. 그렇기 때문에 Java 소스에 붙게 된다면 마지막이라는 의미를 기억을 하고 보시면 암기를 하지 않아도 잘 활용해서 사용을 하실 수 있습니다. 우선 final이 붙을 수 있는 곳은 변수 자료형 앞, method 앞, class 앞에서 사용을 하 실 수 있습니다. 

마지막으로 final은 제약을 하기 위한 것이기 때문에 사용하는 것이 제약이 된다고 생각을 하시면 됩니다. 그럼 제약을 왜 하지? 궁금하실 수 있습니다. 제약이 되면 자원 소모가 줄어 듭니다. 그렇기 때문에 자원 소모를 줄이고 싶으면 final을 생각하면 좋을 것 같습니다.

final 예제

    
package Test;

final class D{ //클래스 final

}

class E extends D{ // 에러

}

class F{
    final void abc(){ // 메소드 final
        System.out.println("abc");
    }
}

class G extends F{
    void abc(){ // 에러

    }
}


public class Test2 {
    public static void main(String[] args) {
        final  int a = 10; // 변수 final
        a = 20; // 에러

    }
}

    

위 예제 소스와 사진을 보면 알 수 있으시겠지만 간단히 정리를 해보겠습니다.

  1. 변수 final은 마지막 변수 값이기 때문에 값 변경이 안됩니다.
  2. method final 같은 경우는 상속을 받으면 부모 method를 overriding을  할 수 있는데 마지막 method이기 때문에 overriding을 할 수 없습니다.
  3. class final 같은 경우는 상속을 자유롭게 할 수 있는데 마지막 class이기 때문에 상속이 불가 합니다.
Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.