IMG-LOGO
공지사항 :

자바 상수(Constant)

lmkfox - 2025-06-29 07:17:56 18 Views 0 Comment

자바에서 **상수(Constant)**는 값이 변하지 않는 변수를 의미하며, 선언 시 지정된 값을 프로그램 실행 중에 변경할 수 없습니다. 상수는 주로 final 키워드를 사용하여 정의하며, 의미 있는 이름을 붙여 코드의 가독성, 유지보수성, 안정성을 높이는 데 기여합니다.


1. 상수의 선언 방법

자바에서 상수는 다음과 같이 선언합니다:

final 데이터타입 변수명 = 값;

예시:

final int MAX_SCORE = 100;
final double PI = 3.14159;
final String GREETING = "Hello";

  • final 키워드는 변수의 값을 한 번만 할당할 수 있도록 만듭니다.

  • 변수명은 대문자와 언더스코어(_)로 구성하는 것이 관례입니다.


2. 상수에 사용되는 데이터 타입

상수는 모든 데이터 타입에 대해 사용할 수 있으며, 크게 나누면 아래와 같습니다.

2.1 기본형(Primitive Type) 상수

타입

예시

설명

int

final int DAYS = 7;

정수형 상수

long

final long TIME = 1000L;

긴 정수. 접미사 L 필요

float

final float RATE = 1.5f;

실수. 접미사 f 필요

double

final double PI = 3.14;

실수. 기본 실수형 타입

char

final char GRADE = 'A';

문자형 상수

boolean

final boolean FLAG = true;

논리값 상수

2.2 참조형(Reference Type) 상수

참조형도 final을 사용하여 상수처럼 사용할 수 있습니다. 하지만 객체의 내용은 변경 가능합니다.

final String NAME = "JAVA";  // 불변 객체
final int[] NUMS = {1, 2, 3}; // 배열 참조는 불변, 내용은 변경 가능

  • final String은 불변(immutable)이라 진짜 상수처럼 사용 가능

  • final 배열, final 객체는 참조는 상수지만, 내부 요소는 변경 가능


3. 상수에 사용할 수 있는 Wrapper 클래스 타입

기본형 타입에 대응되는 **래퍼 클래스(wrapper class)**도 상수 정의에 사용됩니다.

기본형

래퍼 클래스

예시

int

Integer

final Integer MAX = Integer.valueOf(10);

double

Double

final Double PI = 3.14159;

boolean

Boolean

final Boolean IS_ACTIVE = Boolean.TRUE;

Wrapper 클래스는 null을 저장할 수 있기 때문에, 객체 기반 로직에서 활용됩니다.


4. 상수의 활용 예시

예시 1: 물리 상수

final double GRAVITY = 9.8;
final double LIGHT_SPEED = 299_792_458;

예시 2: 조건 비교

final int ADMIN_ROLE = 1;
final int USER_ROLE = 0;

if (role == ADMIN_ROLE) {
    System.out.println("관리자 권한");
}

예시 3: 클래스 상수 (static final)

public class MathConstants {
    public static final double PI = 3.141592;
    public static final int MAX_VALUE = 1000;
}

사용:

double area = MathConstants.PI * r * r;

static final 상수는 클래스 이름으로 접근할 수 있고, 인스턴스를 생성하지 않아도 됩니다.


5. 상수와 열거형(enum)

상수를 여러 개 정의할 때는 enum을 사용하는 것이 더 안전하고 명확할 수 있습니다.

enum Direction {
    EAST, WEST, SOUTH, NORTH
}

이런 식으로 의미 있는 이름으로 상수를 묶어서 사용할 수 있으며, 타입 안정성과 가독성이 뛰어납니다.


6. 요약

항목

설명

선언 방식

final 데이터타입 변수명 = 값;

변수명 관례

대문자 + 언더스코어 (MAX_LENGTH, PI)

사용 가능한 타입

기본형, 참조형, 래퍼 클래스 모두 가능

변경 여부

final로 선언된 변수는 값 재할당 불가

static final

클래스 상수로서 여러 곳에서 공유 가능

enum

열거형으로 그룹 상수 표현 가능


댓글