Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] 변수의 유효 범위 (Variable Scope) 본문
변수의 유효 범위란 해당 변수가 접근 가능한 범위를 의미합니다. Java에서는 변수가 선언된 위치에 따라 그 범위가 결정됩니다. 이를 효율적으로 이해하고 활용하기 위해 변수의 유효 범위에 대해 알아보겠습니다.
1. 변수의 유효 범위 예제
예제 1: 블록 내부의 변수
블록 내부에서 선언된 변수는 해당 블록 내부에서만 유효합니다.
// VariableScopeExample1.java
public class VariableScopeExample1 {
public static void main(String[] args) {
int x = 10; // 변수 x 선언
if (x == 10) {
int y = 20; // 블록 내부에서 변수 y 선언
System.out.println("x: " + x + ", y: " + y); // 출력 결과: x: 10, y: 20
}
// System.out.println(y); // 오류 발생: 변수 y의 유효 범위를 벗어남
}
}
예제 2: 메서드 내의 변수
메서드 내에서 선언된 변수는 해당 메서드 내에서만 유효합니다.
// VariableScopeExample2.java
public class VariableScopeExample2 {
public static void main(String[] args) {
int x = 10; // 변수 x 선언
calculate(x); // 메서드 호출
}
public static void calculate(int number) {
int result = number * 2; // 메서드 내부에서 변수 result 선언
System.out.println("Result: " + result); // 출력 결과: Result: 20
}
}
예제 3: 클래스 변수와 인스턴스 변수
클래스 변수(static 변수)와 인스턴스 변수는 해당 클래스의 모든 인스턴스에서 접근 가능합니다.
// VariableScopeExample3.java
public class VariableScopeExample3 {
static int globalVar = 100; // 클래스 변수 선언
public static void main(String[] args) {
System.out.println("Global variable: " + globalVar); // 출력 결과: Global variable: 100
VariableScopeExample3 instance = new VariableScopeExample3();
instance.accessInstanceVariable(); // 인스턴스 메서드 호출
}
public void accessInstanceVariable() {
int localVar = 200; // 인스턴스 변수 선언
System.out.println("Instance variable: " + localVar); // 출력 결과: Instance variable: 200
}
}
예제 4: 전역 변수
전역 변수는 프로그램 전체에서 접근 가능합니다.
// VariableScopeExample4.java
public class VariableScopeExample4 {
static int globalVar = 100; // 전역 변수 선언
public static void main(String[] args) {
System.out.println("Global variable: " + globalVar); // 출력 결과: Global variable: 100
modifyGlobalVariable();
}
public static void modifyGlobalVariable() {
globalVar = 200; // 전역 변수 값 변경
System.out.println("Modified global variable: " + globalVar); // 출력 결과: Modified global variable: 200
}
}
예제 5: 렉시컬 스코프
렉시컬 스코프는 변수의 유효 범위가 코드의 작성 위치에 의해 결정되는 것을 의미합니다.
// VariableScopeExample5.java
public class VariableScopeExample5 {
static int x = 100; // 전역 변수 선언
public static void main(String[] args) {
int x = 10; // 지역 변수 선언
System.out.println("Local variable: " + x); // 출력 결과: Local variable: 10
System.out.println("Global variable: " + VariableScopeExample5.x); // 출력 결과: Global variable: 100
}
}
예제 6: 익명 블록
익명 블록 내에서 선언된 변수는 익명 블록 내에서만 유효합니다.
// VariableScopeExample6.java
public class VariableScopeExample6 {
public static void main(String[] args) {
int x = 10; // 지역 변수
{
int y = 20; // 익명 블록 내의 변수
System.out.println("x: " + x + ", y: " + y); // 출력 결과: x: 10, y: 20
}
// System.out.println(y); // 오류 발생: 변수 y의 유효 범위를 벗어남
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] 익명 함수에서 상수 및 변수 참조 (0) | 2024.03.19 |
---|---|
[Java/자바] 익명 클래스(Anonymous class) (0) | 2024.03.19 |
[Java/자바] printf()를 사용한 문자열 포맷 출력 (0) | 2024.03.19 |
[Java/자바] instanceof 연산자: 객체 타입 확인 (0) | 2024.03.19 |
[Java/자바] Float과 Byte 배열 간의 변환 (0) | 2024.03.18 |