[JAVA] 변수의 범위와 수명 (지역 변수, 인스턴스 변수, 클래스 변수)

지역 변수, 인스턴스 변수, 클래스 변수의 개요

변수는 자바 프로그램에서 데이터를 저장하고 다루는 데 핵심적인 역할을 합니다. 변수의 범위와 수명은 변수가 어디에서 정의되었는지와 언제 유효한지를 결정합니다. 자바에서는 주로 지역 변수, 인스턴스 변수, 클래스 변수로 구분됩니다.

 

지역 변수

지역 변수는 메서드나 코드 블록 내에서 선언되며, 해당 블록 내에서만 접근 가능합니다. 메서드 내의 반복문이나 조건문 등에서 선언되는 변수가 지역 변수입니다. 지역 변수의 수명은 해당 블록 내의 실행이 시작되고 종료될 때까지로 제한됩니다.

 

인스턴스 변수

인스턴스 변수는 클래스 내에서 선언되며, 객체의 인스턴스가 생성될 때마다 생성되는 변수입니다. 인스턴스 변수는 객체 내에서 각기 다른 값을 가질 수 있으며, 객체의 속성이나 상태를 표현하는 데 사용됩니다. 인스턴스 변수의 수명은 해당 객체의 수명과 일치합니다.

 

클래스 변수

클래스 변수는 클래스 내에서 static 키워드와 함께 선언되며, 해당 클래스의 모든 인스턴스가 공유하는 변수입니다. 클래스 변수는 클래스의 공통된 상태나 속성을 저장하는 데 사용됩니다. 클래스 변수의 수명은 프로그램 실행 동안 유지되며, 프로그램 종료 시까지 유지됩니다.

 

변수 범위와 라이프 사이클의 예제

public class Example {
    static int classVar = 10; // 클래스 변수
    int instanceVar = 20; // 인스턴스 변수
    
    public void exampleMethod() {
        int localVar = 20; // 지역 변수
        System.out.println(classVar); // 클래스 변수 접근
        System.out.println(localVar); // 지역 변수 접근
    }
    
    public static void main(String[] args) {
        VariableScopeExample instance = new VariableScopeExample();
        instance.exampleMethod();
        
        // System.out.println(localVar); // 오류: 지역 변수는 해당 블록 내에서만 접근 가능
    }
}

 

'JAVA > 자바 기본 문법' 카테고리의 다른 글

[JAVA] 논리 연산자  (0) 2023.08.10
[JAVA] 산술 연산자  (0) 2023.08.10
[JAVA] 변수 선언과 초기화  (0) 2023.08.09
[JAVA] 레퍼런스 데이터 타입(참조 타입)  (0) 2023.08.09
[JAVA] 기본 데이터 타입  (0) 2023.08.09