티스토리 뷰
지난 장에는 '변수'에 대해 알아보았다.
지난 장들 바로가기...
이번 장에서는 변수 다음으로 '상수'라는 개념을 알아볼 것인데, 프로그래밍에서 '상수'란 무엇일까?
상수? 값 할당은 한 번만! (Constant)
앞서 지난 장에서 살펴보았었던 '변수'와 이번 장에서 살펴볼 '상수'를 비교해 보자.
변수는 '변하는 수'라고 했었다. 따라서 특정 변수를 선언하고 어떠한 값으로 저장(초기화)하면 해당 값이 변수에 저장되는 원리였다. 여기에서 '변수'와 '상수'의 차이가 있다.
만약 다음과 같은 코드를 사용하여 변수를 어떠한 값으로 초기화하고, 다시 다른 값으로 초기화하면 어떻게 될까? 아래 코드와 같이 말이다.
int a; a = 10; a = 20; |
위 코드에서는, a라는 int형의 변수를 선언하고, 10으로 초기화하였다. 하지만 바로 뒤 코드에서 변수 a의 값을 다시 20으로 초기화하였다. 결과는 어떻게 될까? 다음 보기 중에서 골라 보자.
- 코드 상에서는 a가 2개였지만 10과는 다른 값인 20이 중복되어 더해짐에 따라 컴퓨터상에는 각각 다른 변수가 각각 10, 20으로 저장된다. (두 값이 모두 저장된다.)
- 10이라는 값으로 한 번 초기화되었으니 뒤에 몇 번을 초기화하던 무시되고 10만 남는다.
- a가 두 번 초기화됨으로 인해 프로그램 상에 오류가 발생하고 멈춘다.
- a가 10으로 처음 초기화되었으나, 20으로 초기화하라는 코드가 다음 순서에 있으므로, 최종적으로 20으로 초기화된다.
우선, 답은 4번이다. 여기에 '변수'와 '상수'의 차이가 있다. 만약 a가 변수라면 4번이 맞고, a가 상수라면 3번이 답이 된다.
변수와 상수의 차이는 바로 '값 할당(초기화)'이다.
그러면 위에 설명했던 것을 몇 가지로 정리해 보겠다.
자바에서 말하는 '상수'
- 변수에 딱 한 번만 값을 할당(초기화)할 수 있다.
- 한 번 할당된 값은 변경이 불가능하다.
- 키워드 final이 붙어있는 변수이다.
3번과 같이, 변수에 값 할당을 한 번만 할 수 있는지(상수), 계속 다시 할당할 수 있는지(변수)는 키워드 'final'의 유무에 따라 결정된다.
상수의 선언 및 초기화에 대한 예시는 다음과 같다.
final int NUM = 10; |
위 코드에서, 상수의 명명 규칙에 대해 짧게 정리하겠다. '명명 규칙'이라는 것은, 지키지 않아도 프로그램 자체의 오류는 없으나, 개발자들의 관례라고 이해하면 되겠다.
- 상수의 이름은 모두 대문자로 짓는다. (첫 글자만 대문자로 처리하는 것이 아닌, 위 예시 코드처럼 상수명의 전체를 대문자로 처리한다.)
- 이름의 둘 이상의 단어로 이루어져 있을 경우, 단어를 언더바 ( _ ) 로 연결하는 것이 관계이다. (ex : USER_ID)
이제 간단한 예제를 보겠다.
class Constants { public static void main(String[] args) { final int MAX_NUMBER = 100; final int MIN_NUMBER = 10; int currentNum = 30; currentNum = 50; System.out.println("최댓값 : " + MAX_NUMBER); System.out.println("최솟값 : " + MIN_NUMBER); System.out.println("현재 값: " + currentNum); } } |
실행 결과 :
최댓값 : 100 최솟값 : 10 현재 값 : 50 |
위 내용을 정확히 이해했다면 이 내용은 식은 죽 먹기일 것이다.
final 키워드가 붙은 MAX_NUMBER 상수와 MIN_NUMBER 상수는 한 번 값을 할당하면 다시 변경할 수 없고, 키워드가 붙지 않은 currentNum 변수는 최종적으로 할당된 값인 50을 최종 값으로 할당받아 그대로 출력됨을 알 수 있다.
간단한 개념인 것 같아도 실무에서는 많이 쓰이니, 반드시 숙지하도록 한다.
다음 강좌에서는 '이스케이프 시퀀스'에 대해 알아보겠다.
다음 강좌 바로가기 >>
'프로그래밍 > Java' 카테고리의 다른 글
8장. 연산자 (0) | 2018.07.27 |
---|---|
7장. 형 변환 (0) | 2018.07.27 |
5장. 변수와 자료형 (0) | 2018.07.26 |
4장. 컴퓨터가 읽지 않는 문자, 주석 (0) | 2018.07.25 |
3장. 자바 메인 메소드, 기본 출력 (0) | 2018.07.23 |
- Total
- Today
- Yesterday
- 자료형
- HCL
- main
- Terraform
- EC2
- ecr
- 스타트업
- dockerfile
- 테라폼
- 디자인
- Java
- env
- AWS
- entrypoint
- Android
- 머티리얼
- 메터리얼
- 도커
- docker
- 자바
- DESIGN
- dockerhub
- Material
- Operator
- 컨테이너
- cmd
- 안드로이드
- Container
- 자격증명
- uiux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |