변수
변수란
단 하나의 값을 저장할 수 있는 메모리 공간
변수의 명명 규칙
대소문자가 구별되며 길이에 제약이 없다. True와 true는 서로 다른 것으로 간주된다.
예약어를 사용하면 안 된다. true는 예약어라서 사용할 수 없지만, True는 가능하다.
숫자로 시작해서는 안 된다. top10은 허용되지만, 7up은 허용되지 않는다.
특수문자는 '_'와 '$'만 허용한다. $harp은 허용되지만, S#arp은 허용되지 않는다.
권장하는 규칙
클래스 이름의 첫 글자는 항상 대문자로 한다. 변수와 메서드의 이름의 첫 글자는 항상 소문자로 한다.
여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다. ex) lastIndexOf, StringBuffer
상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다. ex) PI, MAX_NUMBER
2. 변수의 타입
기본형(primitive type) - 논리형(boolean), 문자형(cahr), 정수형(byte, short, int, long), 실수형(float, double) 계산을 위해 실제 값을 저장한다. 모두 8개 참조형(reference type) - 객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입
참조형 변수를 선언할 때 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조변수의 타입이 된다.
ex) Date클래스
기본형(primitive type)
*boolean을 제외한 나머지 7개의 기본형은 서로 연산과 변환이 가능하다.
기본형 범위
실수형은 정수형과 저장형식이 달라서 같은 크기라도 훨씬 큰갑을 표현할 수 있으나 오차가 발생할 수 있다. 따라서 실수형에서는 범위 뿐만 아니라 정밀도도 타입 선택의 중요한 기준이 된다.
정밀도
float : 7자리
double : 15자리
상수와 리터럴
상수
변수의 타입 앞에 키워드'final'을 붙여준다.
반드시 선언과 동시에 초기화해야 한다.
상수의 값을 변경하는것이 허용되지 않는다.
리터럴
위의 초록색 부분을 리터럴이라 한다.
프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의했기 때문에 이와 구분하기 위해 상수를 _리터럴_이라는 다른 이름으로 불러야만 했다.
리터럴의 타입과 접미사
타입이 달라도 저장범위가 넓은 타입에서 좁은 타입의 값을 저장하는 것은 허용된다.
문자 리터열과 문자열 리터열
문자열 리터럴은 ""안에 아무런 문자도 넣지 않는 것을 허용하지만 문자 리터럴은 반드시 ''안에 하나의 문자가 있어야 한다.
덧셈 연산자(+)는 어느 한 쪽이 String이면 나머지 한쪽을 String으로 변환한 다음 결합한다. 따라서 기본형 타입 값을 문자로 변환할 때 빈 문자열("")을 더해주면 된다. ex) 7 + " " -> "7 " " " + 7 -> " 7" 7 + "7" -> "77"
형식화된 출력 - printf()
'%n' 대신 '\n'을 대신 사용해도 되지만, OS마다 줄바꿈 문자가 다를 수 있기 떄문에 '%n'을 사용하는 것이 더 안전하다.
3. 형변환
기본형과 참조형간의 형변환은 불가능하다.
자동 형변환
표현범위가 좁은 타입에서 넓은 타입으로 형변환하는 경우에는 값 손실이 없으므로 두 타입 중에 표현범위가 더 넓은 쪽으로 형변환된다.
char와 short는 둘 다 2byte의 크기 이지만 범위가 서로 달라서 자동 형변환이 수행될 수 없다.
Last updated