loading

프로그래밍/JAVA

[JAVA] 상수(Constant)란 무엇인가?

침착곰 2022. 3. 6. 21:03
반응형

안녕하세요.

이번 포스팅에서는 상수(Constant)에 대해서 알아보겠습니다.

제 나름대로 정리한 내용이라 잘못된 내용이 있다면 댓글 부탁드립니다!!

 


상수란 무엇인가?

 상수란 변수의 반댓말로 항상 상(常)자를 사용하여 변하지 않고 고정된 값을 담는 변수를 의미합니다. 변하지 않는 값을 사용하고 싶을 때 사용합니다. 

 프로젝트를 진행 시 프로그램에서 변하지 않고 고정된 값인 경우 상수를 선언하여 사용해줍니다. 예를 들면 프로그램에서 에러가 난 경우 에러코드/에러메시지를 보여줄 때, 프로그램의 기본적인 환경설정정보(DB정보, IP주소정보 등)를 설정할 때 상수를 사용해줍니다. 프로그램이 실행되고 끝날 때까지 변하지 않는 값일 경우 상수를 사용하면 다른 개발자가 보았을 때 가독성도 높여주고, 본인도 보기 편하게 작업을 할 수 있습니다.

 


final

 자바에서 상수를 선언할 때는 final을 사용하여 선언을 합니다. final은 해당 오브젝트를 단 한 번만 할당할 수 있음을 의미합니다. 보통 상수를 선언할 때 static final을 사용하여 상수를 선언하게 됩니다. final만 사용하면 변하지 않는 변수 상수를 의미하는데 static을 왜 사용하는지 알아보겠습니다.

 


static

 말 그대로 "정적이다"라는 의미를 가지고 있습니다. static 멤버들은 클래스에 고정된 멤버입니다. 그래서 클래스 로더가 클래스를 로딩하면 메모리에 할당시켜줍니다. 메모리 할당을 한 번만 하게 됩니다. 

 static은 전역적으로 쉽게 재사용하는 잘 변하지 않는 변수나 메서드를 사용할 때 주로 사용합니다. 만들어놓고 클래스 호출, 객체 생성을 할 필요없이 바로바로 사용할 수 있습니다.

 


상수 사용법(예제)

 자바에서 상수는 final을 사용하여 선언해주면 됩니다. 아래는 예시입니다.

public final String HELLO_WORLD = "Hello World!!";
public final String ONE_PLUS_ONE = "1 + 1 = 2";

 

 final을 사용하여 상수를 선언이 가능하지만 보통 static final을 같이 사용하여 선언해줍니다. 클래스에서 사용할 멤버 변수의 값을 고정하겠다는 의미입니다. 즉, final은 변수의 값이 변하지 않고, static은 새로운 메모리에 할당하지 않고 한 메모리에 계속 재사용하겠다는 것 입니다.

public static final String HELLO_WORLD = "Hello World!!";
public static final String ONE_PLUS_ONE = "1 + 1 = 2";

 

 상수같은 경우 보통 class를 만들어서 비슷한 종류의 상수를 모아놓고, 필요할 때 마다 해당 상수를 호출하여 사용해주시는 것이 편합니다. 상수 변수를 선언하는 경우 대문자로 선언을 해줍니다.

Ex) 

public class ConstantVO {
	public static final String HELLO_WORLD = "Hello World!!";
	public static final String ONE_PLUS_ONE = "1 + 1 = 2";
}

 

위의 선언한 상수를 호출해보겠습니다.

public class ConstantTest {
	public static void main(String[] args) {
		System.out.println(ConstantVO.HELLO_WORLD + "\n");
		System.out.println(ConstantVO.ONE_PLUS_ONE + "\n");
	}
}

ConstantVO클래스에서 상수를 호출하여 상수 값을 출력해줍니다.

 

결과 

 

이상 상수에 대해서 간략하게 알아봤습니다.

반응형
그리드형