1> 변수의 초기화란?
선언된 변수에 최초로 값을 할당하는 것.
즉, 멤버변수로 선언시 프로그래머가 초기값을 주지 않는경우 자동적으로 값이 할당되는 것.
지역변수는 해당이 안됨.
2> 변수의 종류-- 멤버변수와 지역변수
자바에서 변수로는 멤버변수(=전역변수)와 로컬변수(지역변수) 두 종류가 있다.
멤버변수(Member Variable) |
로컬변수(local Variable) |
선언부분 |
클래스내 |
메소드내 |
사용범위 |
해당 클래스내 전체 |
선언된 해당 메소드내 |
초기화 |
자동초기화 |
안됨. 프로그래머가 직점 초기값을 할당. |
3> 기본 데이터형의 초기값
데이터형 |
기본초기값 |
boolean |
false |
char |
'\u0000' |
byte, short, int, long |
0 |
float |
0.0f |
double |
0.0 |
object |
null |
4> 초기화 예제
㉠ Variable_init .java
1 : class Variable_init 2 : { 3 : public static void main(String[] args) 4 : { 5 : int x;//x는 main메소드 안에 선언되어 있으므로 지역변수... 6 : //x=0; 7 : System.out.println(x); 8 : } 9 : }
|
<< 실행 결과 >>
에러가 난다. 그 이유는 변수 x는 main메소드 안에 선언되어 있으므로 지역변수이다. 따라서 자동초기화가 안된다. 따라서 6번라인에서 x에 값을 할당해 주면 에러가 제거된다. |
㉡ Variable_init2 .java
1 : class Variable_init2 2 : { 3 : static boolean b; 4 : static int x; 5 : static float f; 6 : 7 : public static void main(String[] args) 8 : { 9 : System.out.println("변수 b의 초기값은 : "+b); 10 : System.out.println("변수 x의 초기값은 : "+x); 11 : System.out.println("변수 f의 초기값은 : "+f); 12 : } 13 : }
|
<< 실행 결과 >>
변수 b의 초기값은 : false 변수 x의 초기값은 : 0 변수 f의 초기값은 : 0.0
변수 b,x,f는 메소드내에 선언된 것이 아니므로 멤버변수들이다. 따라서 프로그래머가 초기값을 할당해 주지 않아도 기본값이 할당된다.
여기서 static이란 키워드가 사용되었는데 이는 객체를 생성하지 않아도 변수를 사용할 수 있게 해주는데 지금은 그렇다는 것만 알고 있자. |
클래스 변수와 지역변수, 정적변수등 초기화에 대해 명확히 기억하지 못하고 대충 그럴것이다 생각했었는데
다시한번 보고 넘어가자는 의미에서 정리하였다..
출처:
http://www.it-bank.or.kr/prom/java_main.htm