티스토리 뷰
day13 190308
강제형변환(Casting), 객체타입확인(InstanceOf), 그리고 클래스의 다이어그램에 대해서
배웠습니다.
<강제형변환> (Casting)
: 부모가 실행시키지 못하는 것(재정의되지 않은 메소드)을 실행할 때.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class TireApp4 { public static void main(String[] args) { Tire t1 = new KumhoSnowTire(); t1.go(); //g1.chain(); 에러 //t1.push(); 에러 SnowTire t2 = (SnowTire)t1; // 강제형변환(캐스팅) t2.go(); t2.chain(); //t2.push(); 에러 ((KumhoSnowTire)t1).push(); // 즉흥적으로 사용할 때 사용한다. } } | cs |
>> 9행,12행처럼, 형변환을 할 수 있다.
<객체타입확인> (InstanceOf)
: Casting을 할 수 있는지 확인하기 위해 사용된다.
( 자식타입이 부모타입으로 변환되어 있는 상태에서만 가능하기 때문에 확인 필요)
1 2 3 4 5 6 7 8 9 10 | public class TireTester { public void testTire(SnowTire tire) { if ( tire instanceof HankookSnowTire) { HankookSnowTire t = (HankookSnowTire) tire ; t.melt(); } else if (tire instanceof KumhoSnowTire) { ((KumhoSnowTire) tire).push(); } } } | cs |
>> 위 처럼 Instanceof키워드를 사용하여 형변환이 가능한지 만들고,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class TireTesterApp { public static void main(String[] args) { TireTester tester = new TireTester(); Tire t1 = new Tire(); //tester.testTire(t1); 에러! testTire(SnowTire tire)메소드는 SnowTire류 객체만 전달받을 수 있다. KumhoSnowTire t2 = new KumhoSnowTire(); tester.testTire(t2); HankookSnowTire t3 = new HankookSnowTire(); tester.testTire(t3); } } | cs |
>> 7행의 주석처리를 없애고, 컴파일해보면 오류가 나는 것을 볼 수 있다.
<클래스 다이어그램>
- 상속관계, 의존관계, 포함관계, 구현관계 등의 클래스간의 관계를 그림으로 약속지어 만들어놓은 것.
( http://www.nextree.co.kr/ 에 용어 설명이 잘되어있으므로 참조. )
(출처 : http://www.nextree.co.kr/p6753/)
Casting과 instancOf가 자주 사용되지는 않지만, 때때로 사용될 때가 있다고 합니다.
숙지해두는 편이 좋을 것 같습니다.
'Programming > JAVA' 카테고리의 다른 글
JAVA Web#15 Day 15 인터페이스 (interface) (0) | 2019.03.14 |
---|---|
JAVA Web#14 Day 14 super & 추상화 (0) | 2019.03.10 |
JAVA Web#12 Day 12 상속 & 메소드 재정의(@OVerride) (0) | 2019.03.07 |
JAVA Web#11 Day 11 상수(static, final) & 패키지 (0) | 2019.03.06 |
JAVA Web#10 Day 10 this키워드 & 접근제한자 & 메소드 응용 ( getter, setter) (0) | 2019.03.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 블록엘리먼트
- sql
- jhta
- querybox
- h#
- 스프링
- 인라인엘리먼트
- html
- 자바
- 이클립스
- 중앙HTA
- copotter
- 자바 기초
- 비등가조인
- API
- inline element
- 태그
- Class
- 국비
- 자바 독학
- block element
- 프레임워크
- 자바 국비
- 오라클 문법
- 강제형변환
- 데이터베이스
- Oracle
- spring
- Database
- 브라캣
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함