안녕하세요.
이번 포스팅에서는 상수(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클래스에서 상수를 호출하여 상수 값을 출력해줍니다.
결과
이상 상수에 대해서 간략하게 알아봤습니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] properties 사용예제 (0) | 2022.03.06 |
---|---|
[JAVA] 이슈해결 java.util.MissingResourceException: (0) | 2022.03.06 |
[JAVA] doGet() / doPost() 정리 및 예제 (0) | 2022.03.06 |
[자바] The import javax.servlet cannot be resolved 이슈 해결 방법 (0) | 2022.03.05 |
[JAVA] java.lang.ClassNotFoundException: sun.misc.GC 에러해결방법 (0) | 2021.07.11 |