[Java] 객체의 형변환(Casting)

JUNBEOM PARK·2022년 2월 15일
0

🧨 Java

목록 보기
21/33
post-thumbnail

🤔 객체의 형변환

✔ 형변환(casting)


1. 묵시적 형변환(Implicit Type Conversion)

Java에서 묵시적 형변환이란 자동으로 형변환 해주는 경우를 의미한다.

int age = 25;
double avgAge = age;   // 25.0 (double)

2. 명시적 형변환(Explicit Type Conversion)

데이터 앞에 변환할 타입으로 명시해주는 경우
주로 큰 데이터 타입을 작은 데이터 타입으로 변환할 때 사용하며, 데이터 손실의 가능성이 있어 명시적으로 형 변환을 해주지 않을 경우 에러가 발생한다.

double avgAge = 23.54;
int age = (int)avgAge;  // 24, (int)로 명시적 형변환


✔ 객체의 형변환

객체 참조 변수들 간의 대입 규칙

  1. 왼쪽 항과 오른쪽 항의 객체 유형이 서로 다른 경우 두 유형이 서로 상속 관계에 있음

  2. 왼쪽 객체가 오른쪽 객체의 상위 클래스인 경우에만 묵시적 형변환 발생

  3. 자식 클래스에서 부모 클래스 유형으로 할당하는 것은 가능하지만, 반대의 경우 명시적 형변환을 사용해야 함

class GeneralMember {
    // ...
}
class SpecialMember extends GeneralMember {
    // ...
}
public class Main {
    public static void main(String arg[]) {
        SpecialMember sm = new SpecialMember();  // 에러X
        GeneralMember gm = new SpecialMember();  //	에러X
        SpecialMember sm2 = new GeneralMember(); // 에러발생
        SpecialMember sm3 = (SpecialMember) new GeneralMember(); // 에러X
        
    }
}



참고자료
https://data-make.tistory.com/214

profile
DB 엔지니어👍

0개의 댓글