[Java] 상수란?

dani·2025년 6월 5일

Java

목록 보기
5/9

작성일: 2023.11.26

◾상수란?

상수(常數)란 수식에서 변하지 않는 값을 의미한다.

이렇게 변하지 않는 값은 자바에서 final이라는 예약어를 사용하여 선언한다.

◾상수를 사용하는 이유

상수를 사용하면 변하지 않는 값을 반복하여 사용할 때 의미있는 문자로 인식하기 쉽고,

혹시 상수 값을 변경해야 한다고 해도 선언한 부분 한 곳만 변경하여 수정할 수 있어 유지보수가 편해진다.

또 값이 변하면 위험한 경우에 상수를 사용하여 막을 수 있다.

코드에서 값을 보았을 때 의미하는 바를 쉽게 파악할 수 있음 (가독성↑)
값이 수정되더라도 한 곳만 수정해주면 됨 (유지보수 ↑)
값이 변하지 않게 보호해야하는 경우

아래 예제를 보면 더 이해하기 쉬울 것이다.


◾상수 선언하기

상수는 fianl을 사용하여 선언한다. 아래에서는 선언과 동시에 초기화하는 방법, 선언 후 초기화 하는 방법을 보여준다. 두 방법 모두 가능하지만, 어떠한 방법을 사용하든 상수의 경우에 값을 선언한 뒤에는 수정할 수 없다.

1. 선언과 동시에 초기화

	public static void main(String[] args){
    	final int MONTH = 12;
        MONTH = 11; // compile error!
    }
}

이렇게 선언한 후에는 MONTH의 값을 변경할 수 없다. 인텔리제이에서 아래와 같이 이미 값을 할당한 뒤 다시 MONTH에 값을 할당하려고 선언하였을 때 에러가 뜨는 것을 확인할 수 있다.

2. 선언 후 초기화

public class ConstantEx{
	public static void main(String[] args){
        final int MONTH;
        MONTH = 12;
        MONTH = 11; //compile error!
    }
}

Month라는 이름의 상수를 선언한 후, 값을 할당할 수 있다. 단 값은 1번만 할당해야하니 그 후 할당하려고 시도한다면 모두 컴파일 에러가 발생한다.

선언과 동시에 초기화, 선언 후 초기화하여 상수를 선언할 수 있다.
final로 선언된 변수는 값을 한 번 할당하면 변경할 수 없다.


◾static final

상수는 위의 단락에서처럼 final을 이용하여 선언하지만 보통 static을 함께 사용하여 static final로 많이 선언하여 사용한다. 클래스에서 사용할 멤버 변수의 값을 고정하겠다는 의미이다.

🤔 static?

static은 전역적으로 재사용이 되는, 잘 변하지 않는 변수나 메서드를 사용할 때 주로 사용한다. 선언한 뒤 클래스 호출, 객체 생성을 할 필요없이 바로바로 사용할 수 있다.

public class ConstantEx {
    static final int MONTH = 12; //선언과 동시에 초기화
    public static void main(String[] args) {
        System.out.println(MONTH);
    }
}

static final로 변수를 선언하는 경우 선언과 동시에 초기화를 해야한다. static으로만 변수를 선언한다면 선언만 해도 되지만 static fianl의 경우는 선언과 동시에 초기화해야하고 그렇지 않을 경우 컴파일 에러가 발생한다.


◾상수 명명 관례

대문자로만 구성된 명사로 정한다.
여러 단어로 구성된 이름의 경우 단어 사이에 '_'을 써서 구분한다.

static final int MONTH = 12;
static final String HELLO_WORLD = "hello world!";
  • month (X)
  • MONTH (O)




참고 사이트

https://crazykim2.tistory.com/741

https://school.programmers.co.kr/learn/courses/5/lessons/110

profile
개발세포 이야기

0개의 댓글