자바에서 지역 변수와 상수는 변수의 범위와 값 변경 가능성에 따라 중요한 역할을 합니다. 각각의 개념을 명확히 이해하는 것은 자바 프로그래밍의 기초를 다지는 데 도움이 됩니다. 아래에서 이 두 가지를 자세히 설명하겠습니다.
지역 변수 (Local Variables)
정의
- 지역 변수는 메서드나 블록 내에서 선언된 변수를 말합니다.
- 메서드, 생성자, 또는 블록이 실행될 때만 존재하며, 해당 메서드나 블록이 종료되면 소멸됩니다.
- 지역 변수는 메서드 또는 블록 내에서만 접근할 수 있으며, 해당 범위를 벗어나면 접근할 수 없습니다.
특징
- 선언 위치:
- 메서드, 생성자, 또는 코드 블록 내에서 선언됩니다.
- 초기화:
- 자바에서는 지역 변수를 선언할 때 반드시 초기화해야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.
- 범위:
- 지역 변수는 선언된 블록 내에서만 유효하며, 블록 외부에서는 접근할 수 없습니다.
- 메모리:
- 메서드나 블록이 실행될 때 메모리에 생성되고, 실행이 끝나면 메모리에서 제거됩니다.
예제
public class LocalVariableExample {
public void printLocalVariable() {
int localVar = 10; // 지역 변수
System.out.println("Local variable: " + localVar);
}
public static void main(String[] args) {
LocalVariableExample example = new LocalVariableExample();
example.printLocalVariable();
// System.out.println(localVar); // 오류: localVar는 printLocalVariable 메서드 내에서만 유효합니다.
}
}
상수 (Constants)
정의
- 상수는 값이 한 번 초기화되면 변경할 수 없는 변수를 말합니다. 자바에서는 final 키워드를 사용하여 상수를 정의합니다.
- 상수는 값이 변경되지 않으므로, 프로그램의 안정성을 높이는 데 도움을 줍니다.
특징
- 선언 및 초기화:
- 상수는 final 키워드를 사용하여 선언합니다. 상수는 선언과 동시에 초기화해야 하며, 이후 값을 변경할 수 없습니다.
- 상수의 이름은 관례적으로 대문자로 작성하며, 여러 단어가 있는 경우 언더스코어(_)로 구분합니다.
- 범위:
- 상수는 변수와 동일한 범위 규칙을 따릅니다. 즉, 클래스 범위, 메서드 범위 등에서 사용할 수 있습니다.
- 메모리:
- 상수는 메모리에서 한 번만 저장되고, 프로그램 전반에서 재사용됩니다.
예제
public class ConstantsExample {
// 상수 선언
private static final int MAX_ATTEMPTS = 5;
public void printConstant() {
System.out.println("Max attempts allowed: " + MAX_ATTEMPTS);
}
public static void main(String[] args) {
ConstantsExample example = new ConstantsExample();
example.printConstant();
// MAX_ATTEMPTS = 10; // 오류: 상수는 값을 변경할 수 없습니다.
}
}
요약
- 지역 변수:
- 메서드나 블록 내에서 선언되며, 해당 범위 내에서만 유효합니다.
- 사용 전 반드시 초기화해야 하며, 블록이 종료되면 메모리에서 사라집니다.
- 상수:
- final 키워드를 사용하여 정의하며, 초기화 후 값을 변경할 수 없습니다.
- 일반적으로 클래스의 모든 인스턴스에서 공통적으로 사용되며, 값이 변경되지 않아 프로그램의 안정성을 높이는 데 기여합니다.
이러한 개념들을 잘 이해하고 활용하면 자바 프로그래밍에서 변수와 상수를 효과적으로 사용할 수 있습니다.
'JAVA' 카테고리의 다른 글
객체지향(오버로딩 (Overloading), 오버라이딩 (Overriding)) (0) | 2024.07.24 |
---|---|
객체지향(상속) (0) | 2024.07.24 |
객체지향 프로그래밍 (클래스와 인스턴스)란? (0) | 2024.07.24 |
컬렉션(List, Set, Queue, Map ) (1) | 2024.07.23 |
배열(Arrays) (0) | 2024.07.23 |