티스토리 뷰

아마 예전에 배웠을 것입니다.

시간이 지나서 까먹었을 뿐.. ㅠㅠ

 

교육 실습 중에 누가 이런 이야기를 하였습니다.

 

상수를 왜 대문자로 표기하지 않나요? (클린 코드 관점에서 상수는 대문자로 표기하며 단어간 언더바(_)로 연결)

 

예를들면, 

 

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도 잘 사용하지 않아요.

 

어쨌든, 기본에 대해 한번 더 생각하게 해주는 하루였던 것 같네요~

댓글
04-29 00:11
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday