final 변수는 언제 써야하는가?

Hyunta·2022년 2월 21일
0

자동차 경주 미션

목록 보기
3/7

학습동기

피드백 받은 사항 중에 상수를 public 으로 지정한 것과 변경이 필요하지 않은 변수에는 final을 쓰라는 내용이 있었다.

final

final 키워드는 변수, 메서드, 클래스에 사용할 수 있다. 사용되는 곳에 따라 다른 의미를 가지지만 공통적으로 무언가를 제한한다는 의미를 갖는다.

final 변수

변수에 final이 붙으면 수정할 수 없다는 의미를 갖는다. 수정할 수 없기 때문에 초기화 값은 필수적이지만, 생성자에서 선언할 수도 있습니다. 생성자는 final 필드의 최종 초기화를 마쳐야 하는데 만약 초기화가 되지 않은 final 필드가 있다면 컴파일 에러가 발생합니다.

수정 할 수 없다는 범위는 그 변수의 값에 한정합니다. 즉, 다른 객체를 참조하거나 할 때 참조하는 객체의 내부의 값은 변경할 수 있다라는 의미입니다.

public class CarDto {
	private final String type = "car";
    private final String name;
    private final int position;

    public CarDto(final String name, final int position) {
        this.name = name;
        this.position = position;
    }
}

만약 자동차 이름처럼 코드 내부에서 변경이 없다면, final로 지정해두면 바뀔 위험이 없어지므로 사용하면 좋습니다.
메서드의 인자에도 final을 쓰게 되면 해당 메서드의 길이가 길어지더라도, 불변성을 보장받을 수 있어서 안전한 개발이 가능해집니다😁

추가로 static

상수를 구현할 때는 static과 final을 이용해서 불변하는 필드로 사용합니다. static은 메모리에 한번만 할당되기 때문에 메모리를 절약해서, 상수를 사용할 때 final과 같이 쓴다면 효율성이 높아집니다.

profile
세상을 아름답게!

0개의 댓글