-
[ch2 자바 변수] 리터럴(literal)이란?프로그래밍 언어/JAVA 2022. 6. 6. 11:41
상수란?
'상수(constant)'는 변수와 마찬가지로 값을 저장할 수 있는 공간이지만, 변수와 달리 값을 저장하면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 변수와 동일하며, 단지 변수의 타입 앞에 키워드 'final'을 붙여주기만 하면 된다.
final int MAX_SPEED = 10;
일단 상수에 값이 저장된 후에는 상수의 값을 변경하는 것이 허용되지 않는다.
final int MAX_VALUE; //정수형 상수 MAX_VALUE를 선언
MAX_VALUE = 100; // 상수에 처음으로 값 저장
MAX_VALUE = 200; //에러! 상수에 저장된 값을 변경할 수 없다.상수의 이름은 모두 대문자로 하는 것이 관례이며, 여러 단어로 이루어져 있는 경우 '_'로 구분한다.
리터럴이란?
원래 12, 123, 3.14, 'A'와 같은 값들이 '상수'인데, 프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에 이와 구분하기 위해 상수를 다른이름으로 불러야만했다. 그래서 상수 대신 리터럴(literal)이라는 용어를 사용한다. 나도 처음엔 리터럴의 개념이 잘 잡히지 않았는데, 리터럴은 단디 우리가 기존에 알고있던 '상수'의 다른 이름이라고 생각하면 되겠다.
변수(variable) : 하나의 값을 저장하기 위한 공간
상수(constant) : 값을 한번만 저장할 수 있는 공간
리터럴(iteral) : 그 자체로 값을 의미하는 것int year = 2022;
final int MAX_VALUE = 100;
변수, 리터럴, 상수
변수에도 타입이 있는 것처럼 리터럴에도 타입이 있다. 변수의 타입은 저장될 '값의 타입(리터럴의 타입)' 에 의해 결정되므로, 만일 리터럴에 타입이 없다면 변수의 타입도 필요없을 것이다.
정수형과 실수형에는 여러 타입이 존재하므로, 리터럴에 접미사를 붙여서 타입을 구분한다. 정수형의 경우, long타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고, 접미사가 없으면 int 타입의 리터럴이다. byte와 short타입의 리터럴은 별도로 존재하지 않으며 byte와 short 타입의 변수에 값을 저장할 때는 int 타입의 리터럴을 사용한다.
10진수 외에도 , 8, 16진수로 표현된 리터럴은 별수에 저장할 수 있으며, 16진수라는 것을 표현하기 위해 리터럴 앞에 접두사 '0x' 또는'0X'를 , 8 진수의 경우 '0'을 붙인다.
int octNum = 010; // 8진수 10, 10진수로 8
int hexNum = 0x10; // 16진수로 10, 10진수로 16실수형에서는 float 타입의 리터럴에 접미사 'f' 또는 'F'를 붙이고, double타입의 리터럴에는 접미사 'd' 또는 'D'를 붙인다.
float pi = 3.14f; //접미사 f 대신 F를 사용해도 된다. 생략불가
double rate = 1.618d; //접미사 d대산 D를 사용해도 된다. 생략가능실수형 리터럴에는 접미사를 붙여서 타입을 구분하며, float타입 리터럴에는 'f'를, double타입 리터럴에는 'd'를 붙인다. 정수형에서는 int가 기본 자료형인 것처럼 실수형에서는 double이 기본 자료형이라서 접미사 'd'는 생략이 가능하다.
문자 리터럴과 문자열 리터럴
'A'와 같이 작은따옴표로 문자 하나를 감싼 것을 '문자 리터럴'이라고 한다. 두 문자 이상은 큰 따옴표로 감싸야 하며 '문자열 리터럴'이라고 한다.
char ch = 'J'; //char ch = 'Java'; 이렇게 할 수 없다.
String name = "Java"; // 변수 name에 문자열 리터럴 "Java"를 저장char타입의 변수는 단 하나의 문자만 저장할 수 있으므로, 여러 문자(문자열)를 저장하기 위해서는 String 타입을 사용해야한다. 문자열 리터럴은 "" 안에 아무런 문자도 넣지 않는 것을 허용하며, 이를 빈 문자열(empty string)이라고 한다. 그러나 문자 리터럴은 반드시 ' ' 안에 하나의 문자가 있어야한다.
String str = ""; // OK. 내용 없는 빈 문자열
char ch = ''; // 에러. ''안에 반드시 하나의 문자가 필요
char ch = ' '; // OK. 공백 문자(blank)로 변수 ch를 초기화원래 String은 클래스이므로 아래와 같이 객체를 생성하는 연산자 new를 사용해야 하지만 특별히 이와 같은 표현도 혀용한다.
String name = new String("Java"); //String 객체를 생성
String name ="Java"; // 위의 문장을 간단히, 차이점은 객체 파트에서 설명반응형'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[ch2 자바 변수] 자바의 출력과 사용자 입력 (0) 2022.06.06 [ch2 자바 변수] 문자열 결합, 기본형 & 참조형 (0) 2022.06.06 [ch2 자바 변수] 선언과 저장, 타입 (0) 2022.06.06 [ch2 자바 변수] 이클립스 화면에 글자 출력하기 & 계산 (0) 2022.05.26 [자바 기초] 자바(JAVA)란? ( + 특징 ) (0) 2022.05.26