728x90
참고 교재 : 자바의 신
자바의 모든 자료형은 값을 지정하지 않으면 기본값을 사용한다.
그러나, 지역 변수로 기본 자료형을 사용할 때에는 기본 값이 자동으로 적용되지 않고,
반드시 값을 지정해야만 한다.
인스턴스 변수, 클래스 변수, 매개 변수는 값을 지정하지 않아도 컴파일이 가능하다.
하지만 교재에서는 변수를 초기화하는 것을 습관화 하기를 강조하고 있다.
기본 자료형의 기본값을 코드로 보자.
public class PrimitiveTypes {
int intDefault1;
public static void main(String[] args) {
PrimitiveTypes obj = new PrimitiveTypes();
obj.defaultValues();
}
public void defaultValues() {
int intDefault2;
System.out.println(intDefault1);
System.out.println(intDefault2);
}
}
intDefault1 에서는 문제가 없으나
지역 변수로 선언된 intDefault2에는 빨간 줄이 뜬다.
무시하고 컴파일을 해보니 에러 메세지가 뜬다.
Exception in thread "main" java.lang.Error : unresolved compilation problem:
The local variable intDefault2 may not have been initialized.
변수는 항상 초기화 하는 습관을 들이자!
이제 인스턴스 변수의 default값을 확인해보자.
public class PrimitiveTypes {
int intDefault1;
byte byteDefault;
short shortDefault;
long longDefault;
float floatDefault;
double doubleDefault;
char charDefault;
boolean booleanDefault;
public static void main(String[] args) {
// TODO Auto-generated method stub
// PrimitiveTypes obj = new PrimitiveTypes();
// obj.checkByte();
PrimitiveTypes obj = new PrimitiveTypes();
obj.defaultValues();
}
public void defaultValues() {
System.out.println(intDefault1);
System.out.println(byteDefault);
System.out.println(shortDefault);
System.out.println(longDefault);
System.out.println(floatDefault);
System.out.println(doubleDefault);
System.out.println(charDefault);
System.out.println(booleanDefault);
}
}
0
0
0
0
0.0
0.0
false
인스턴스 변수는 초기화 하지 않아도 기본값이 출력되는 것을 확인할 수 있다.
System.out.println(charDefault); 의 결과는 없어 보이나 실제로는
'\u0000'값이 출력된 것이다.
변수를 초기화하는 습관이 국룰로 여겨지는 것은 아니라고 하니
내가 일하는 회사 코딩 스타일에 맞추자.
728x90
'Programming > Java' 카테고리의 다른 글
[ Java ] - 접근 제어자 (0) | 2020.09.21 |
---|---|
[ Java ] - 단축키 모음. (0) | 2020.09.16 |
[Java] - overloading, 메서드 오버로딩 (1) | 2020.09.14 |
Java 기초 - 변수 (2) | 2020.09.11 |
자바 기초 - 클래스 (0) | 2020.09.10 |
댓글