본문 바로가기

JAVA 기초

지역변수와 전역변수의 이해

지역변수는 말그대로 지역내에서만 통용되는 변수를 이야기합니다. 해당 변수는 특정 공간을 벗어나면 사용이 불가능합니다.

 

좀 쉽게 예를 들자면, 우리가 유럽에 갔다고 치겠습니다. 유럽 국가마다 통용되는 언어가 각자 정해져있는데, 우리가 거기서 한국말로 소통하려하면 어떻게 될까요?

 

아마 한마디도 알아듣지 못할겁니다. 하지만 영어는 어떨까요? 최소한 의소소통 하는데에 문제는 없을겁니다. 어딜 가든 내가 원하는 것을 이야기하고 소통하는 것이 가능할 겁니다.

 

지역변수와 전역변수는 이러한 차이를 가지고 있습니다. 지역변수는 해당하는 지역에서만 활동할 수 있는 반면, 전역변수는 어디서든 사용할 수 있습니다.

 

이게 아주 정확한 맥락은 아니지만, 당장은 이정도 흐름만 이해하시면 지역변수를 쉽게 이해할 수 있을겁니다.

 

간단한 예시를 보시겠습니다.

 

package j20220712;

public class GlobalVal_1 {
	
	// 객체지향 언어 : c++, c#, JAVA
	// 큰데에서 작은데로 가는 특징이 있다
	// 온점 ( . ) 으로 구분할 수 있다.
	// ex) 대한민국.경기도.수원시.팔달구.덕영대로
	

	// 전역변수, 멤버변수, 클래스변수, 필드
	// 접근제한자 타입 변수명
	// 변수초기화 없이 선언만 해도 된다
	// 기본적으로 문자열에는 null
	// 정수형(Integer) 에는 0이 들어감

	public String name;
	public int age;

	public static void main(String[] args) {
		// 전역변수를 사용하기 위해 선언
		GlobalVal_1 gv = new GlobalVal_1();

		// 지역변수
		// 괄호가 닫히면 (소멸하면) 값이 없어진다.
		// 값을 찾을 수가 없다.
		// 아래 선언된 String type의 "홍길동" 문자열 변수는
		// main 문구 안에서만 유효하다.
		String name = "홍길동";

		// 지역변수 name 출력
		System.out.println(name);

		// 전역변수 name, age를 GlobalVal_1 type로 선언한
		// gv와 온점을 통해 출력
		System.out.println(gv.name);
		System.out.println(gv.age);
	}

}

 

간단하게 주석을 달았는데, 기초지식을 습득하는데에 크게 도움이 될거라고 생각합니다.

main 중괄호 안에 있는 String type의 name은 지역변수에 불과합니다. 해당 변수는 main 안에서만 사용하는 것이 가능하고, 밖으로 벗어나면 그 가치를 잃습니다.

 

하지만 GlobalVal_1 클래스에서 선언된 String name과 int age는 해당 클래스는 물론이고, 다른 클래스에서도 설정만 해준다면 활용하는 것이 충분히 가능합니다.

 

이 부분은 메서드에 대한 이해가 있어야 하기 때문에 자세하게 아실 필요는 없습니다만, 지역변수와 전역변수의 차이는 이해하고 넘어가셔야 합니다.

 

 

'JAVA 기초' 카테고리의 다른 글

1차원 배열  (0) 2022.07.12
반복문 (while, do-while 문)  (0) 2022.07.12
반복문 (for 문)  (0) 2022.07.12
변수 기초 다지기  (0) 2022.07.12