# 변수 #
1> 변수의 의미 .. 변수명의 바구니에 저장 공간을 할당하고 그 곳에 값을 저장하
는 공간의 위치를 의미.
쉽게 말하자면 상품을 팔기 위해 할인점에서 진열 자리를 준비하고 그곳에 물건
을 진열 하는 것과 마찬가지.
2> 변수의 종류
<1> 멤버 변수(instance 변수)
Static으로 선언되지 않은 모든 변수를 인스턴트 변수라고 부른다. 클래스의
인스턴스와 연관, 생성된 모든 객체는 자신만의 복사본을 가진다.
<예> int a = 10; //멤버 변수의 경우 객체 명으로 접근한다.
<접근 방법> 객체 명을 선언 뒤 값을 주는 방법으로 접근 .. a+=10;
// a에 10을 더하라는 소리.
<2> 클래스 변수(static 변수)
클래스의 인스턴스가 아니라 그것이 정의된 클래스와 연관된다.
static 한정자는 이 변수가 클래스 필드 임을 의미하며, 상수를 정의하는 것이
클래스 필드의 일방적인 사용.
정적 필드의 복사본은 오직 한 개 존재하며 전역 변수로 사용되고, 같은 클래
스 내부에서는 변수 명으로 지칭되며 클래스 외부에서 해당 변수를 유일하게
지칭하기 위해서는 클래스명.변수명으로 인스턴스를 생성하지 않고도 직접
참조가 가능(인스턴스를 만든 후 객체 참조변수.변수명의 참조도 가능.
<예> static int b=10;
<접근 방법> 내부에서는 변수명으로 접근 가능, 외부에서는 클래스명.변수명
으로 접근.
<3> 지역 변수(local 변수, automatic 변수)
Method 안에서 선언되며 사용되는 변수를 지역변수라 말한다. 지역 변수는
다른 Method에서 중복 선언 할수 있으며, 선언된 Method에서만 사용이 가
능하기 때문에 지역 변수라 불린다.
<예> public MyDemo() {
int x;
}
<접근 방법> 내부에서는 변수명으로 접근 가능.
<4> 자바의 지역 변수는 반드시 초기화하고 사용해야 하고, 멤버와 클래스 변수
는 초기화 않해도 디폴트 값이 기본적으로 들어간다.
3> 변수의 이름 짓기 규칙
<1> 영문자와 숫자를 섞어서 쓸수 있으나 첫 글자가 숫자로 시작되어선 안된다.
<잘못된 변수 선언의 예> int 9nine;
<2> 한글/한자도 변수명으로 사용가능, 특수 문자는 변수로 사용할 수 없으나,
일부 특수문자(언더바(_), $는 식별자로 사용 가능.
<잘못된 변수 선언의 예> int key&bar;
<3> 여러 명령어 같은 예약어는 사용할 수 없다.
<잘못된 변수 선언의 예> int char;
<4> 변수명은 명사형으로 지으며, 소문자로 시작. 이것을 꼭 지킬 필요는 없다.