티스토리 뷰
아마 예전에 배웠을 것입니다.
시간이 지나서 까먹었을 뿐.. ㅠㅠ
교육 실습 중에 누가 이런 이야기를 하였습니다.
상수를 왜 대문자로 표기하지 않나요? (클린 코드 관점에서 상수는 대문자로 표기하며 단어간 언더바(_)로 연결)
예를들면,
class Class {
final int numberOfStudent = 10;
}
여기에서 numberOfStudent는 상수일까요? 아닐까요?
제목에도 작성하였지만, 상수가 아닙니다.
얼핏보면 상수처럼 생겼죠?
상수였다면,
NUMBER_OF_STUDENT 라고 선언해야 맞습니다.
상수의 정의는
상수란 변하지 않고, 항상 일정한 값을 갖는 수를 말한다.
라고 합니다. (위키백과)
final int numberOfStudent = 10; 가 상수가 아닌 이유는 클래스 선언 시점에 값이 변경될 수 있기 때문입니다.
class Class {
final int numberOfStudent;
Class(int numberOfStudent) {
this.numberOfStudent = numberOfStudent;
}
}
class Use {
Class class1 = new Class(100);
Class class2 = new Class(200);
}
위 코드에서 보면 class1에서의 numberOfStudent 값(100) 과 class2에서의 numberOfStudent 값(200)이 다릅니다.
즉, 항상 일정하지가 않죠? 그래서 상수가 아니라서 대문자로 표기하지 않습니다.
기본적인건데, 잘 사용하지 않으면 잊어버리는 것 같네요.
(저희쪽 얘기, 일반화 아닙니다.) 현업에서는 거의 enum만을 사용합니다. static final도 잘 사용하지 않아요.
어쨌든, 기본에 대해 한번 더 생각하게 해주는 하루였던 것 같네요~
'Programming Languages > Java' 카테고리의 다른 글
컴포넌트(Component)란? (0) | 2022.08.15 |
---|---|
null을 반환하는 코드는 일거리를 늘릴 뿐만 아니라 호출자에게 문제를 떠넘긴다. (0) | 2022.07.26 |
댓글
01-03 00:52
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday