김형준 GIS 연구소 (for Developers)  
Front Page
Notice | E-Mail | Admin | Write Article   
 
2010/07/16 17:41 2010/07/16 17:41
[Java] 파생 클래스가 아니라.. 딱 내 클래스인가?
뭐.. 제목이 저래.. 라고 생각하시는 분도 분명 계실테고.. 저 역시 뭐 제목이 이래.. 라고 생각하고 있습니다.. 먼저 아래와 같은 클래스 계층이 있다고 칩시다..

사용자 삽입 이미지

Geometry를 부모로 하는 세개의 자식 클래스입니다.. 예를 들어 아래처럼 코딩을 했습니다..

이제 이제 g 객체가 Circle이냐.. Rectangle이냐.. 아니면 Triangle이냐.. 아니면.. Geometry이냐를 어떻게 알 수 있을까요? 뭐 이런거야.. 자바에는 편리한 instanceof가 있으니 아래처럼 하면되지라며.. 코딩합니다..

자바를 잘아신다면.. 어.. 이거 아닌데.. 라고 바로 하실테지만.. 저는 단지.. 그냥 냄새가 좀 나는데.. 는 정도였답니다.. 여튼, 실행해보면 2개의 조건문에서 true를 만나게 됩니다.. 3번 코드의 if 문과 15번 코드의 if 문.. 즉 g는 Rectangle이면서 동시에 Geometry 타입입니다.. 당연한 결과이지요.. 하지만 원하는 것은 딱... "나는 나다!"라는 것이죠.. 즉, 위의 경우에는 g는 Geometry가 아니라 Rectangle다! 라는 것을 판별해야 한다는 것입니다..

자바는 C/C++ 언어가 가지지 못한 강력한 기능이 있습니다.. 실행시간에서의 타입 정보(RTTI)인데요.. 이 RTTI를 위해 자바는 모든 객체에 대해서 자신의 타입에 대한 정보를 담고 있습니다.. 이를 이용해 우리가 원하는 바를 얻을 수 있는 코드는 아래와 같습니다..

이제 정확히.. 오직 3번 코드에 대한 if문에서만 true인, "나는 나다!"라는 결과를 얻을 수 있게 됩니다..
Tag :
Track this back : http://www.gisdeveloper.co.kr/trackback/610
Commented by 학생 at 2010/08/05 17:35  r x
그냥 else if를 쓰면 안되나요?ㅋㅋㅋㅋ
Replied by 김형준(Dip2K) at 2010/08/11 11:40 x
else if 문을 쓰면... if 문의 순서를 고민해야 할 문제가 생기겠죠? 뭐 여튼... 이 글은 자바의 getClass라는 매서드가... 개인적으로도 재밌어 한번 정리해본 글이랍니다.. 아시는 분에게는 매우 식상할.. ^^;

name    password    homepage
 hidden
BLOG main image
 Notice
DuraMap-Xr 소개 및 다운로드
[오픈소스] SimpleSHP v0.1
FingerEyes-Xr 소개 및 다운로드
OpenGL Tutorials
 Category
전체 (531)
GIS 개발 (146)
프로그래밍 (233)
스치는 생각들 (129)
번역 또는 집필 (3)
 TAGS
GIS Xr OpenGL Shader FingerEyes BlackPoint Algorithm Java Map Engine WPF
 Calendar
«   2012/02   »
      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      
 Recent Entries
[FingerEyes] 지오메트리...
[FingerEyes] Geometry로...
[FingerEyes] FID 리스트...
[FingerEyes] UPDATE, INS...
영화, "부러진 화살"
 Recent Comments
메일로 답변드렸습니다....
김형준 - 02/01
txt파일을 엑셀로 변환하...
최상준 - 02/01
코봉히님두 새해 복 많이...
김형준 - 01/25
아 너무 감사합니다. 새해...
코봉히 - 01/23
wkb는 http://www.gisdeve...
김형준(Dip2K) - 01/23
wkb의 구조가 shp파일의...
코봉히 - 01/20
wkb는 바이너리인지라.....
김형준(Dip2K) - 01/20
정말 좋은 정보 감사합니...
코봉히 - 01/20
은빛소나기님의 블로그를...
김형준 - 01/20
네, 빨간색으로 표시되는...
김형준 - 01/20
 Archive
2012/02
2012/01
2011/12
2011/11
2011/10
2011/09
2011/08
2011/07
2011/06
2011/05
2011/04
2011/03
 Link Site
Adobe Flex 3 Help
Cartograph 2.0
GADM
GIS 위키디피아
GIS 프로그래밍 연구소
MapTools.org
OGC
OGRE3D
OSGeo 한국 지부
Paul Bourke Site
Wikipedia
국가수자원관리 정보시스템
국립지리원
국토연구원
국토해양부
네이버 과학
대한측량협회
류광님의 블로그
이민파님의 공간분석과 리...
지오서비스(GeoService)
 Visitor Statistics
Total : 928729
Today : 208
Yesterday : 317
태터툴즈 배너
rss