Java

[Java]상수(Constant)

MoZZANG 2022. 2. 24. 14:29

상수(Constant)란? 

 

항상 상 + 숫자 수 = 값이 변하지 않고 항상 그대로인 것을 말한다.

 

때문에 상수는 변수와 차이점이 변하는지, 변하지 않는지만이 있을 뿐 나머지는 변수의 구조와 똑같다.

 

그렇다면 상수는 어떤 구조로 이루어 질까?

 

▲ 위 예시처럼 변수와 상수의 구조는 동일하되, 변수의 data type앞에 final을 붙여주면 그것이 상수가 된다.

 

 

상수에도 중요한 원칙이 있다.

 

<상수의 대원칙>

 

- 상수는 Class안에서 선언해주어야 한다. (Class밖에서 해도 error는 나지는 않지만 사용하지 않는다.)

- Class안에서 상수를 선언할 때는 반드시 선언과 동시에 초기화해야한다.

  -- method안에서 상수를 선언할 때는 초기화를 사용하기 전에만 해주면 된다. 

- 상수 선언후 중간에 값을 변경하면 error가 난다.

- 변수는 소문자로 선언하지만 상수는 대문자로 선언하는 것이 암묵적인 룰이다.

 

 

▲ 상수는 보통 class안에서만 선언하지만 예제를 위해 main method안에서 선언해보았다.

    6행에서 NICKNAME에 빨간줄(error)가 생기는 이유는 선언만 하고 초기화를 안해서 그렇다.

    9행에서 빨간줄(error)가 생기는 이유는 5행에서 상수로 NICKNAME을 선언했는데 그 값을 바꾸려고 했기 때문이다. 

 

 

 

 

 

위에서 상수와 변수는 final을 빼고는 똑같다고 했는데 그럼 굳이 왜 byte가 늘어나게 상수를 쓰는 것일까?

바로 상수는 프로그램의 가독성을 높이고 유지보수시에도 유리하기 때문이다. 아래 예제를 보자.

 

 

▲ 왜 computer가 user에게 졌는지 알겠는가? 아니다 우리는 알 수 없다.

하지만 상수를 이용하면 우리가 이해하기 쉬워질 수 있다. 다시 아래의 예제를 보자.

 

 

▲ Class안에서 상수를 선언하고 다시 내용을 보면 왜 컴퓨터가 진 것인지 이해할 수 있게 된다.

 

 

 

이것이 우리가 상수를 사용하는 이유 즉, 가독성을 높이고 나중에 코드가 길어졌을 때 유지보수의 편리성까지 있기 때문이다.