집 짓는 개발블로그
(Java, Python) 지역변수와 전역변수 본문
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는 전역변수로서 함수 바깥에서 선언됨
• y는 func() 함수 내에서만 사용 가능한 지역변수
• 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는 인스턴스 변수로서 객체를 생성해야 접근할 수 있음
• y는 func() 메서드 내에서만 접근 가능한 지역변수
• z는 static 키워드로 선언된 클래스 전역 변수로, modifyStatic() 메서드에서 직접 수정할 수 있으며, 객체 생성 없이 접근할 수 있음
'Java' 카테고리의 다른 글
(Java) 순열, 중복순열 만들기 (1) | 2024.11.20 |
---|---|
(Java) 추상메서드와 인터페이스 (1) | 2024.11.19 |
Java로 순열, 조합 만들기 (0) | 2024.11.16 |
하루만에 코딩테스트 언어 갈아타기(Python → Java)(6 진법변환, 포매팅, Math, min/max) (5) | 2024.11.15 |
하루만에 코딩테스트 언어 갈아타기(Python → Java)(5 문자열처리) (0) | 2024.11.15 |