Knowledge/Java

Java 상수 ( final은 무엇인가 )

TakeKnowledge 2019. 10. 10. 00:00
반응형

Java에서의 상수 선언은 기본적으로 변수 선언과 크게 다르지 않다.

 

변수는 

 

1
2
int i;
// 변수 i 선언

 

이렇게 데이터 타입 + 변수 이름의 조합으로 선언한 변수 앞에

 

1
2
final int j;
// 상수 j 선언

 

이렇게 final만 붙이면 상수가 선언된다.

 

대신 대문자 명명규칙과 띄어쓰기가 필요한 경우 _을 쓸 것을 권장하니

 

1
2
3
final int J;

 

이렇게 선언하자.

 

이 상수는 변수와 달리 한번 값을 할당하면

다시는 값을 할당할 수 없는데

이런 상수를 어디다 쓸까?

 

크게 두가지다

 

1. 값이 변하면 위험한 경우

2. 값만 봤을때 무엇을 의미하는지 쉽게 파악할 수 없는 값을 사용할 때

 

1의 경우는 로직에 원주율을 사용해야 하는 경우를 가정하여 예를 들어보자

이럴 때 원주율 값이 변해버리면 계산에 착오가 생길 수 있다. 

 

그렇기 때문에

1
final double PI = 3.141592653589793;

위와 같이 원주율 값을 PI 상수로 선언하여 사용하면 값이 변할 위험을 없앨 수 있다.

 

2의 경우는 기름 값으로 특정 연산을 해야 한다는 상황을 가정해서 예를 들어보자.

 

그런데

 

1
System.out.println(5 * 1390);

 

이렇게 적어놓으면 코드를 직접 짜지 않은 사람들은 ( 아마 코드를 짠 사람도 몇 달 뒤에 저 1390을 보면 저게 뭐지 할지도 모른다 ) 저 1390이 무슨 값을 의미하는지 알기 힘들 것이다. 

 

이럴 때 

 

1
2
3
4
5
final int OIL_PRICE = 1390;
// 기름 값을 의미하는 상수를 선언하고
 
System.out.println(5 * OIL_PRICE);
// 그 변수를 연산에 사용하면 코드의 의미가 
반응형