자바에서는 클래스변수, 인스턴스변수, 지역변수 요로코롬 3가지의 종류가 있습니다.
그 중 클래스변수 와 인스턴스변수를 합쳐서 멤버변수 라고 부릅니다.
이 3가지의 변수를 파악하기 위해서는 변수가 어느위치에 있는지 확인해야 합니다.
먼저 인스턴스변수 부터 알아봅시다~
인스턴스 변수는 class내부에 위치합니다.
또한 객체를 생성해야만 사용 할 수 있습니다.
참고로 우리가 객체를 생성할때 new라는 키워드를 사용한 것 기억하시나요^^?
때문에 인스턴스변수의 값을 사용하기 위해서는 인스턴스화를 하여야 합니다.
역시 눈으로 보고 직접 코딩을 해보시는게 더 기억에 남겠네요.
각 객체마다 고유한 값을 유지해야 하는 경우 사용할때 필요하겠네요.
그 다음 클래스 변수 입니다.
인스턴스 변수와 마찬가지로 class내부에 위치합니다.
그리고 인스턴수 변수 앞에 static을 붙여주면 이게 바로 클래스 변수 입니다.
인스턴스 변수는 각 인스턴스 마다 독립적인 저장공간을 갖습니다. 하지만 클래스 변수는 모든 인스턴스가 같은 저장공간을 공유합니다.
그리고 전역 변수 라고 부르기도 합니다.
지금은 그냥 static을 붙인다는 것만 알아두시면 충분합니다^^
지역변수는 멤버 변수를 제외한 나머지 변수들을 의미합니다.
즉 class영역이 아닌 다른 블럭( { } )에 존재하면 지역변수 입니다.
지역 변수가 선언된 블록을 벗어나면 그 지역 변수는 사라집니다.
위의 소스에서 세가지의 변수를 이용해서 코딩을 해봤습니다.
21번째 라인에서는 어떤 값이 출력이 될까요? 100? 10?
직접 실행해 보시죠!! ㅎ
100이 나오셨나요?
저는 이 소스를 보고
1. 클래스 변수와 지역변수는 변수이름이 같아도 된다는 것을 알려주고 싶었습니다.
2. 같은 변수의 이름인 x를 출력할 때 같은 구역에 지역변수가 있다면 지역변수가 출력됨을 알려주고 싶었습니다.
3. 클래스 변수에 접근시 항상 클래스이름.클래스변수 형식으로 사용하기를 부탁합니다.
그런데 세 종류의 변수가 메모리에 올라오는 시기가 다릅니다.
클래스 변수는 클래스가 메모리에 올라올때 생성됩니다.
인스턴스 변수는 객체가 생성 될 때(new를 사용해 메모리를 할당 할 때) 생성됩니다.
지역 변수는 변수 선언문이 수행 될 때 생성됩니다.
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 14. 생성자(Constructor) (0) | 2015.03.28 |
---|---|
[Java] 13. 메소드 오버로딩(Method Overloading) (0) | 2015.03.21 |
[Java] 11. 배열(Array) 조금 더 알아보기 (0) | 2015.03.11 |
[Java] 10. 배열(Array) (1) | 2015.03.03 |
[Java] 9. 문자열(String) (1) | 2015.03.01 |