-
기본 생성자 초기화 or 필드에서 초기화TIL 2021. 2. 11. 10:48
필드에서 초기화
public class Foo {
private int x = 5;
private String[] y = new String[10];
}생성자에서 초기화
public class Foo {
private int x;
private String[] y;
public Foo() {
x = 5;
y = new String[10];
}
}둘의 차이점은 무엇인가?
어마어마한 차이점은 없지만 소소한 차이점을 보자
1.
만약 둘 다 사용해서 초기화를 하고 있다면 생성자가 필드 초기화 보다 늦게 실행되기 때문에
필드의 값을 생성자가 orverride하게 될 것이다.
2.
다른 경우를 생각해 보면 여러개의 생성자가 있고 각기 다른 값을 초기화한다면 필드 초기화를 할 이유가 없다.
3.
위와 반대되는 개념으로 모두 같은 값을 사용할 때는 일일이 생성자마다 값을 초기화 할 필요가 없고 필드 초기화를 하는 게 좋다.
stackoverflow.com/questions/4916735/default-constructor-vs-inline-field-initialization
'TIL' 카테고리의 다른 글
2021.02.13 기록장 (0) 2021.02.12 2021.02.12 기록장 (0) 2021.02.11 2021.02.11 기록장 (0) 2021.02.10 gradle 맛보기 (0) 2021.02.10 2021.02.10 기록장 (0) 2021.02.09