이롭게 현명하게

[JAVA] 자바 타입 변환 본문

JAVA

[JAVA] 자바 타입 변환

dev_y.h 2023. 4. 28. 18:37
728x90
반응형

 


 

목차

 

자동 타입 변환

하나의 배열로 객체 관리

매개 변수의 다형성

강제 타입 변환

객체 타입 확인

업/다운캐스팅

 


 


[자동 타입 변환]

다형성 : 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다.

즉 부모 타입에 모든 자식 객체가 대입될 수 있다.

이것을 이용하면 객체는 부품화가 가능하다.

타입 변환 : 데이터 타입을 다른 데이터 타입으로 변환하는 행위

클래스 타입 변환은 상속 관계에 있는 클래스 사이에서 발생한다.

자식 타입은 부모타입으로 자동 타입 변환이 가능하다.

 

자동 타입 변환 : 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것

<자동 타입 변환 조건>

자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급될 수 있다.

 

 





a와 b,bb 변수는 타입만 다를 뿐 동일한 A 객체를 참조한다. 

 

부모 타입으로 자동 타입 변환된 이후에는 부모 클래스에 선언된 필드와 메소드만 접근이 가능하다.

변수는 자식 객체를 참조하지만 변수로 접근 가능한 멤버는 부모 클래스 멤버로만 한정된다.

<예외>

메소드가 자식 클래스에서 오버라이딩 되었다면 자식 클래스의 메소드가 대신 호출된다.


[하나의 배열로 객체 관리]

 

class Car{
	Tire tire1 = new Tire("앞왼쪽",6);
	Tire tire2 = new Tire("앞오른쪽",2);
	Tire tire3 = new Tire("뒤왼쪽",3);
	Tire tire4 = new Tire("뒤오른쪽",4);
}

 

class Car{
	Tire[] tire={
    	new Tire("앞왼쪽",6),
        new Tire("앞오른쪽",2),
        new Tire("뒤왼쪽",3),
        new Tire("뒤오른쪽",4)
    };
}

[강제 타입 변환]

강제 타입 변환 : 부모 타입을 자식 타입으로 변환하는 것

※ 자식 타입이 부모 타입으로 자동 변환한 후, 다시 자식 타입으로 변환할 때 강제 타입변환을 사용할 수 있다.

 

 

자식 타입이 부모 타입으로 자동 변환하면, 부코 타입에 선언된 필드와 메소드만 사용 가능하다는 제약 사항이 따른다.

만약 자식 타입에 선언된 필드와 메소드를 꼭 사용해야 한다면 강제 타입 변환을 해서 다시 자식 타입으로 변환한 다음 자식 타입의 필드와 메소드를 사용하면 된다.


[객체 타입 확인(instanceof 연산자)]

레퍼런스가 가리키는 객체의 타입 식별을 위해 사용

객체레퍼런스 instanceof 클래스타입

연산 결과는 boolean : true/false


[업/다운 캐스팅]

업캐스팅(upcasting) : 서브 클래스(자식 클래스) 객체를 슈퍼 클래스(부모 클래스)타입으로 타입 변환,(강제형변환)

객체 내에 부모 클래스의 멤버만 접근 가능

다운캐스팅(downcasting) ; 슈퍼 클래스(부모 클래스) 객체를 서브 클래스 타입으로 변환, (개발자의 명시적 타입 변환 필요)

 

 

 

 

[JAVA] 자바 추상 클래스와 추상 메소드

목차 추상 클래스 추상 클래스 상속 public abstract class 클래스명{ // 필드 // 생성자 // 메소드 } [추상 클래스] 추상(abstract) : 실체 간에 공통되는 특성을 추출한 것 추상 클래스(abstract class) : abstract

devyihyun.tistory.com

 

 

 

 


잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊

댓글과 좋아요는 큰 힘이 됩니다!

 

더보기

[ 참고자료 ]

 

 

 

 

728x90
반응형

'JAVA' 카테고리의 다른 글

[JAVA] 자바 인터페이스  (0) 2023.05.02
[JAVA] 자바 추상 클래스와 추상 메소드  (0) 2023.05.01
[JAVA] 자바 클래스 상속  (0) 2023.04.27
[JAVA] 자바 상속 개념  (0) 2023.04.26
[JAVA] 자바 접근 제한자  (0) 2023.04.25
Comments