본문 바로가기

Java

Java 변수와 상수

Variable (변수)

변하는 값을 저장하기 위해 사용하는 메모리 공간이다.

변수는 프로그램 실행 중에 값이 변경될 수 있다.

 

int number;       // 변수 선언
number = 10;      // 초기화 (값 할당)
int count = 5;    // 선언과 동시에 초기화

 

// 자료형 / 변수명 / 값
int num = 1;

// 문자 하나를 할당할 때는 작은 따옴표('') 문자열은 큰 따옴표("")를 사용한다.
char name = "kim";

boolean taf = true;

 

재할당

변수를 이미 선언한 후에 다른 값을 할당하는 것을 재할당이라고 한다.

int num = 1;
num = 2;

 

 

재선언

변수를 이미 선언한 후에 같은 이름의 변수를 또 다시 선언하는 것을 재선언이라고 한다.

int num = 1;  // 변수 선언과 초기화
num = 2;      // 변수 값 재할당
int num = 10;  // 같은 이름의 변수를 다시 선언 (오류)
// 동일한 스코프 내에서 중복선언 불가

 

int num = 25;  // 첫 번째 스코프에서 age 변수를 선언

if (condition) {
    int num = 30;  // 두 번째 스코프에서 age 변수를 새롭게 선언
    // 이 스코프 내에서는 첫 번째 스코프와는 별개의 age 변수가 사용됨
}
// 첫 번째 스코프와 두 번째 스코프에서 num은 이름은 같지만 다른 변수이다.

 

변수는 선언 시 데이터 타입이 반드시 지정되며, 데이터 타입에 맞는 값만 저장할 수 있다.

지역 변수는 메서드나 블록 내에서 선언된 변수로, 해당 메서드나 블록 내에서만 접근할 수 있으며,

전역 변수는 클래스 멤버로 선언된 변수로, 클래스의 모든 메서드에서 접근할 수 있다. (보통 static 키워드로 선언됨)

 

기본형 변수로는 int, double, char, boolean 등 기본 데이터 타입을 저장하는 변수가 있으며,

배열, 객체, 클래스 등 기본형 이외의 참조 타입을 저장하는 참조형 변수가 있다.

 

 

Constant (상수)

변하지 않는 값을 저장하기 위해 사용하는 메모리 공간이다.

상수는 선언 후 값을 변경할 수 없다.

 

final int MAX_USERS = 100;       // 상수 선언과 초기화

 

상수는 final 키워드를 사용하여 선언하며, 선언과 동시에 초기화해야 한다.

 

// 변수선언과 비슷하지만 앞에 final을 붙인다.
final int MAX_VALUE = 100;

MAX_VALUE = 120; // 재할당 불가 (오류)

 

상수는 한 번 초기화된 이후 값이 바뀌지 않는다.

또한, 상수는 일반적으로 대문자 이름으로 선언하여 변수와 구분한다.

여러 단어일 경우 언더스코어(_)로 구분한다.

 

static과 final을 함께 사용하여 클래스 전체에서 공유할 수 있는 상수를 선언할 수도 있다.

 

final double PI = 3.14159;               // 원주율을 나타내는 상수
static final int MAX_HEIGHT = 250;       // 클래스 상수

 

 

변수와 상수의 차이점

 

구분 변수 상수
값 변경 값이 변경될 수 있음 값이 변경될 수 없음
선언 방식 자료형만 사용 (int count) final 키워드 사용 (final int MAX)
사용 목적 자주 변경되는 데이터를 저장할 때 사용 변경되지 않는 고정값을 저장할 때 사용
이름 규칙 소문자 또는 카멜케이스 사용 (myVar) 대문자 사용, 언더스코어로 구분 (MY_VAR)

 

 

예제 코드

아래 코드는 변수와 상수의 사용을 보여준다.

public class Example {
    // 클래스 상수 선언
    static final int MAX_SPEED = 120;

    public static void main(String[] args) {
        // 변수 선언 및 초기화
        int currentSpeed = 50;
        final int MIN_SPEED = 0;  // 지역 상수

        // 값 변경 가능 (변수)
        currentSpeed = 80;
        System.out.println("현재 속도: " + currentSpeed);

        // 값 변경 불가 (상수)
        // MAX_SPEED = 130;  // 오류 발생: 상수는 변경할 수 없음
        System.out.println("최대 속도: " + MAX_SPEED);
    }
}

 

이 코드에서 MAX_SPEED는 상수이므로 값이 바뀌지 않고, currentSpeed는 변수이므로 값이 변경될 수 있다.

'Java' 카테고리의 다른 글

Java 조건문 (if, if else, switch case)  (0) 2024.11.14
Java 문자열 (String)  (1) 2024.11.14
Java 배열 (Array)  (0) 2024.11.13
Java 형 변환 (Type Casting)  (0) 2024.11.12
Java 자료형 정리 (Java Data Type)  (1) 2024.11.11