JAVA 웹 개발자 실전 면접문제

(자바) final은 어디에 붙어서 어떤 역할을 하는가?

mt프로젝트 2017. 9. 25. 20:48

자바에는 final 제어자가 있다.

이 final은 주로 파라미터에 붙여서 불변 값을 활용하는데 많이 사용하지만, 메소드와 클래스에도 붙을 수 있다.

각각의 위치에 붙었을 때 final 제어자가 제한하는것은 아래와 같다.


1. 클래스 : final class는 다른 클래스에서 상속을 받지 못한다. 즉 클래스의 형태를 수정 할 수 없다.

2. 메소드 : final method는 오버라이딩 하지 못한다. 즉 메소드의 동작을 수정 할 수 없다. (오버로딩은 아예 별도의 메소드를 만드는 것이므로 이것과는 상관 없다.)

3. 변수 : 흔히 사용하는것과 같다. 최초에 값을 선언하고 나서는 수정 할 수 없다. static final 로 클래스 변수를 만들면 최초 한번 선언되고 나서는 서버가 재시작 될 때 까지 불변이고, 인스턴스 변수는 해당 인스턴스 객체가 생성 될 때마다, 지역변수는 해당 메소드가 호출 될 때 마다 최초로 한번 선언 하고 불변값이 된다.