가능한 복제를 초기화 대 선언에 초기화 : 나는 더 나은 연습과 이유입니다, 궁금 해서요
Should I initialize variable within constructor or outside constructor생성자에
. 선언시 클래스 필드를 초기화해야합니까, 아니면 생성자에서해야합니까? 그것이 한 줄짜리 간단한 초기화라는 점을 감안할 때.
class Dude
{
String name = "El duderino";
Dude() {
// irrelevant code
}
}
대
class Dude
{
String name;
Dude() {
name = "El duderino";
// irrelevant code
}
}
편집 : 나는 스타일 중 하나가 예외를 throw 할 수 초기화 코드를 실행의 경우처럼 다른 선호 할 것입니다 상황을 알고 . 여기서 내가 말하는 것은 두 스타일이 절대적으로 동등한 경우입니다. 두 가지 방법 모두 동일한 작업을 수행합니다. 그렇다면 어느 것을 사용해야합니까?
이것은 합리적으로 들립니다. 하지만 내가 말한 것은 어느쪽으로 든 초기화 될 필드들, 즉 생성자에서 검색된 데이터는 사용되지 않을 것이라는 점입니다. 하위 요소를 저장하기위한 빈 내부 List를 초기화하는 것과 같습니다. 여전히 생성자에서 초기화할까요? – amrhassan
@amrhassan -이 경우, 선언 할 때 초기화하지 않고 '최종'이라고 선언합니다. – erickson
당신의 예제에서'final'을 만들 이유를 알 수 있습니다 만, setter'setName (String name)'이 있다면 ... – knownasilya