본문 바로가기

java

03. 상수와 리터럴

※ '자바의 정석 기초편'을 읽으며 정리한 자료임을 미리 밝힙니다. 

 

 

 

Chapter 03.

(1) 상수(Constant)란?

 

→ 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한 번 값을 저장하면 다른 값으로 변경할 수 없음

→ 상수를 선언하는 방법은 변수와 동일. 단, 변수의 타입 앞에 키워드 'final'을 붙여주어야 함

 

final int CHICKEN_PRICE = 20000
// 상수를 선언할 때 변수명은 대문자로 나타내는 것이 관례. 여러 단어로 이루어져 있는 경우 '_'로 구분

 


(2) 리터럴(Literal)이란?

 

→ 원래는 12, 435, 3.14, 'A'와 같은 값들이 상수이지만, 프로그래밍에서 상수를 '값을 한 번 저장하면 변경할 수 없는 저장 공간'으로 정의했기 때문에 이와 구분하기 위해 상수를 다른 이름으로 불러야 했음. 

→ 따라서 리터럴이란, 기존의 의미(값을 뜻하는)를 가진 상수의 다른 이름

→ 프로그래밍에서의 상수 != 기존의 상수

기존의 상수 == 리터럴(Literal)

 

변수(Variable) : 하나의 값을 저장하기 위한 공간
상수(Constant) : 값을 한 번만 저장할 수 있는 공간(프로그래밍에서의)
리터럴(Literal) : 그 자체로 값을 의미하는 것

 


(3) 리터럴의 타입과 접미사

 

→ 변수에 타입이 있는 것처럼 리터럴에도 타입이 있음.

변수의 타입은 저장될 '값의 타입(리터럴의 타입)'에 의해 결정되므로, 리터럴에 타입이 없다면 변수에도 타입이 없음.

 

종류 리터럴 접미사
논리형 false, true 없음
정수형 123, 0b0101, 077, 0xFF. 100L L
실수형 3.14, 3.0e8, 1.4f, 0x1.0p-1 f, d
문자형 'A', '1', '\n' 없음
문자열 "ABC", "123", "A", "true" 없음

 

→ 정수형과 실수형에는 여러타입이 존재하므로 리터럴에 접미사를 붙여 타입을 구분함. 

정수형의 경우 : long타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고 없으면 int타입의 리터럴임. 

→ byte와 short타입의 리터럴은 별도로 존재하지 않으며 byte와 short의 변수에 값을 저장할 때엔 int타입의 리터럴을 사용

실수형의 경우 : flaot타입의 리터럴에 접미사 'f' 또는 'F'를 붙이고, double타입의 리터럴에는 'd' 또는 'D'를 붙임. 

 


(4) 문자 리터럴과 문자열 리터럴

 

→ 'A'와 같이 작은 따옴표로 문자 하나를 감싼 것을 '문자 리터럴'이라 함.

→ "chicken"과 같이 두 문자 이상은 큰 따옴표로 감싸야 하며 '문자열 리터럴'이라 함. 

 

문자열은 '문자의 연속된 나열'이라는 뜻이며, 영어로는 String이라고 한다. 

 

char ch = 'J'; // char ch = 'Java'; 이렇게 하는 것은 불가능
String name = "Java"; // 변수 name에 문자열 리터럴 "Java"를 저장함

 

char타입의 변수 단 하나의 문자만 저장할 수 있음.

여러 문자(문자열)을 저장하기 위해서String타입을 사용해야 함. 

→ 문자열 리터럴은 " " 안에 아무 문자도 넣지 않는 것을 허용하며, 이를 빈 문자열(Empty String)이라고 함.

→ 하지만 문자 리터럴은 반드시 ' ' 안에 하나의 문자가 있어야 함. 

 

String str = ""; // 사용 가능. 내용이 없는 빈 문자열
char ch = ''; // 사용 불가능. ''안에 반드시 하나의 문자가 필요
char ch = ' '; // 사용 가능. 공백 문자(blank)로 변수 ch를 초기화한 것

 

→ 원래 String은 클래스이므로 아래와 같이 객체를 생성하는 연산자 'new'를 사용해야 하지만, 특별이 이와 같은 표현도 허용된다. 

 

String name = new String("Java"); // String 객체 생성
String name = "Java"; // 위의 문장을 간단히 한 것

 


(5) 문자열 결합

 

→ 숫자 뿐만 아니라 아래와 같이 두 문자열을 합칠 때에도 덧셈(+)을 사용할 수 있음. 

 

String name = "Ja" + "va"; // 출력하면 Java가 나온다. 
String str = name + 8.0; // 출력하면 Java8.0이 나온다.

 

→ 덧셈 연산자(+)는 피연산자 모두가 숫자일 때는 두 수를 더하지만, 피연산자 중 어느 한쪽이라도 String이면 나머지 한 쪽을 먼저 String으로 변환한 다음 두 String을 결합함. 

→ 변수의 타입이 무엇이든 간에 문자열과 덧셈 연산을 수행하면 그 결과는 문자열이 됨. 

 

"치킨" + 15000 = "치킨15000"
15000 + "치킨" = "15000치킨"

 

→ 덧셈 연산자는 왼쪽에서 오른쪽의 방향으로 연산을 수항해기 때문에 결합 순서에 따라 결과가 달라진다. 

'java' 카테고리의 다른 글

05. 연산자(Operator)  (0) 2022.06.25
04. 기본형과 참조형  (0) 2022.06.25
02.변수(Variable)  (0) 2022.06.25
01. JAVA란?  (0) 2022.06.25