∎ 변수의 종류
기본 타입 : 정수, 실수, 문자, 논리 리터럴을 저장하는 타입
- 정수 타입 : byte(1byte), short(2byte), char(2byte, 음수불가), int(4byte), long(8byte)
- 실수 타입 : float, double
- 참조 타입 : 배열, 열거, 클래스(ex. String), 인터페이스의 객체를 참조하여 객체의 주소를 저장
∎ 기본 타입의 자동 타입 변환
byte < shot < int < long < float < double
어떤 변수를 새로운 변수에 저장할 때, 큰 허용 범위 타입으로 변환된다.
char는 int로 변환가능 하지만, byte는 char로 변환 불가 하다.
∎ 강제 타입 변환
큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 저장할 때
변환할 변수 앞에 “(바꿀 타입)”을 붙여준다.
∎ 정수 연산에서 자동 타입 변환
피연산자 타입에 byte, char, short는 연산 후 int로 자동 타입 변환된다.
long이 있다면 long으로 변한다.
∎ 실수 리터럴 연산
double로 넣어주어야 한다.
(리터럴 연산은 컴파일러에서 해주고, 변수의 연산은 jvm이 한다.)
∎ 피연산자에 String이 포함되어 있을 때
결과가 문자열로 나옴
∎ 문자열을 기본타입으로 강제 변환
API 이용
Byte.parseByte(str) / Integer.parseInt(str) / Float.parseFloat(str) / Boolean.parseBoolean(str)
∎ 기본 타입을 문자열로 변환 API
String.valueOf(3)
∎ 클래스의 타입 변환
자식 클래스는 부모 클래스로 자동 타입 변환이 가능하다.
타입 변환과 메소드 재정의를 통해 다형성을 실현할 수 있다.
∎ 자동 타입 변환
()가 없으면 자동 타입 변환
예전 부모 클래스의 필드나 메소드를 사용하고 싶을 때, 자동 타입 변환하면 된다.
메소드가 재정의 되었다면 그건 재정의 된 메소드가 사용된다.
(타입 변환된 변수는 여전히 자식 객체 위치를 참조하고 있다.)
매개변수에 이용한다면 자동 타입 변환은 매개변수에 부모 객체, 자식 객체 모두 사용 가능하도록 한다.
∎ 강제 타입 변환
다시 자식으로 사용하고 싶을 때 casting을 한다. ()를 사용하여 강제 타입 변환을 한다.
강제 타입 변환 하기 전, 지금 무슨 타입인지 확인 불가 할 때, 오류(예외)가 발생하지 않도록
“Boolean result = 객체 instanceof 타입” (객체가 해당 타입이면 true) 으로
boolean값을 확인 후, 강제 변환 할 수 있도록 코딩한다.
'개발 지식 > Java' 카테고리의 다른 글
멀티 스레드 (0) | 2024.08.10 |
---|---|
배열 (0) | 2024.08.10 |
람다식 - 자바의 함수형 프로그래밍 (0) | 2024.08.10 |
추상 클래스와 인터페이스 (0) | 2024.08.10 |
자바의 객체 지향 프로그래밍 (0) | 2024.08.10 |