반응형

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

+ Recent posts