클래스변수와 객체변수는 왜 자동으로 초기화될까?
지역변수는 개발자가 별도로 초기화 하지 않으면 쓰레기 값을 갖게 되는데 반해 클래스변수와 객체변수는 왜 자동으로 초기화해주는지 알아보자.
공유하는 변수이다.
클래스변수와 객체변수의 경우 공유하는 변수이다. 즉, 객체변수는 하나의 객체 안에서 다수의 객체 메서드가 공유하는 변수이고, 클래스 변수는 전역변수로서 프로그램 어디서든지 접근 가능한 공유하는 변수이다.
- 정수형 : 0
- 부동소수점 : 0.0
- 논리형 : false
- 객체 : null
Note: 객체멤버인 경우 생성자를 통해, 정적멤버인 경우 정적 실행영역에서 초기화하는 경우가 있긴 하지만 공유변수의 경우 별도로 초기화를 해 주지 않아도 기본값으로 초기화 된다.
공유하지 않는 변수이다.
지역변수의 경우 한 지역에서만 사용되고 소멸되는 변수이기 때문에 그 지역에서 초기화하는 것이 논리적으로 맞다. 그로므로 지역변수의 경우 별도로 초기화를 해줘야 한다.
댓글남기기