Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

(Java, Python) 지역변수와 전역변수 본문

Java

(Java, Python) 지역변수와 전역변수

취준er 2024. 11. 17. 22:46

Python에서 지역변수와 전역변수

 

Python에서는 함수 내부에서 변수를 선언하면 기본적으로 지역변수로 간주된다.

반대로 함수 외부에서 선언된 변수는 전역변수다.

전역변수를 함수 내부에서 수정하려면 global 키워드를 사용해야 함

 

예시 코드

# 전역변수
x = 10

def func():
    # 지역변수
    y = 20
    print("y:", y)  # 출력: y: 20
    print("x:", x)  # 출력: x: 10

def modify_global():
    global x
    x = 30  # 전역변수 x를 수정

func()
print("전역변수 x:", x)  # 출력: 전역변수 x: 10

modify_global()
print("수정된 전역변수 x:", x)  # 출력: 수정된 전역변수 x: 30

x는 전역변수로서 함수 바깥에서 선언됨

yfunc() 함수 내에서만 사용 가능한 지역변수

modify_global() 함수에서는 global x를 선언하여 전역변수 x를 수정할 수 있음

 

 

 

 

Java에서 지역변수와 전역변수

 

Java에서는 클래스 내부에서 선언된 변수는 인스턴스 변수 혹은 전역변수로 간주되며, 메서드 내에서 선언된 변수는 지역변수로 간주된다.

Java에서는 static 키워드를 사용하여 클래스 전역 변수를 만들 수 있으며, 메서드 내에서 클래스 전역 변수에 접근하여 값을 변경할 수 있다.

 

예시 코드

public class VariableExample {
    // 전역변수 (인스턴스 변수)
    int x = 10;

    // 클래스 전역 변수 (정적 변수)
    static int z = 20;

    public void func() {
        // 지역변수
        int y = 30;
        System.out.println("지역변수 y: " + y);  // 출력: 지역변수 y: 30
        System.out.println("인스턴스 전역변수 x: " + x);  // 출력: 인스턴스 전역변수 x: 10
    }

    public static void modifyStatic() {
        // 클래스 전역변수 z를 수정
        z = 50;
        System.out.println("수정된 클래스 전역변수 z: " + z);  // 출력: 수정된 클래스 전역변수 z: 50
    }

    public static void main(String[] args) {
        VariableExample example = new VariableExample();
        example.func();
        System.out.println("초기 클래스 전역변수 z: " + z);  // 출력: 초기 클래스 전역변수 z: 20

        modifyStatic();  // 클래스 전역변수 z를 수정
        System.out.println("메인에서 수정된 클래스 전역변수 z: " + z);  // 출력: 메인에서 수정된 클래스 전역변수 z: 50
    }
}

- x는 인스턴스 변수로서 객체를 생성해야 접근할 수 있음

yfunc() 메서드 내에서만 접근 가능한 지역변수

zstatic 키워드로 선언된 클래스 전역 변수로, modifyStatic() 메서드에서 직접 수정할 수 있으며, 객체 생성 없이 접근할 수 있음