사진출처 : http://www.zimbio.com
Java를 비롯한 모든 프로그래밍 언어를 공부하고 응용하는데 있어서 이런 마음가짐으로!! 씹어먹겠다는 마음가짐으로!! 하지만 100% 이해보다는 흘러가는 흐름을 잡아가며!! 초보자의 길을 걷다보면 곧 길을 걷는 방법도 찾는 방법도 발견하게 될거라고 생각합니다!!
이번 시간에는 Java Generic의 원리에 대해 조금 더 살펴보도록 하겠습니다. 기본적인 내용은 앞서 포스팅 된 글을 통해 말씀드렸습니다만, 한번 더 상기하면 좋을 부분들에 대해 말씀드리려고 합니다.
아래의 예를 한번 살펴보도록 하겠습니다.
추천은 블로거에게 큰 힘이 됩니다. 로그인 필요없이, 아래의 손가락을 한번씩만 클릭해주시면 감사하겠습니다^^
===== Kor<String> Type의 클래스 사용
Kor<String> t = new Kor<String>() ;
t.setData(str1) ;
String str2 = t.getData() ;
===== Java Generic 처리방식
Kor t = new Kor() ;
t.setData(str1) ;
String str2 = (String)t.getData() ;
Kor<String>을 사용했을 때 Java 컴파일러는 <String>을 삭제해버리고 필요한 곳에 캐스팅을 자동으로 넘겨줍니다. 자바컴파일러가 Generic을 어떤식으로 처리하느냐를 말씀드리는 부분입니다.
<Sring> 이런식으로 < > 안에 Generic Type을 덧붙여주는 것이 Generic 이라는 것인데, Java에서의 Generic 처리방식은 앞서 선언되어 있는 Generic Type Class를 사용할 때 <>이렇게 표현되어 있는 Generic Type을 삭제처리 해줍니다. 완전히 지워버리게 됩니다.
Generic Type으로 선언된 것을 사용 할 때 이미 선언된 형에 상관없이 프로그래머가 사용하고자 하는 Type을 넣어줌으로써 사용하는 것을 확인하실 수 있을 겁니다.
String str2 = (String)t.getData() ;
이 부분에서 말이죠^^
====================================================================
<T>,<String>,<Integer>,<Class명>
위와 같은 방식으로 Generic을 사용하는 것입니다.
프로그래밍 할 때에도 위와 같은 코드를 가끔 보게 되는데요. 실제로 Generic을 굳이 사용하지 않아도 표현가능한 방법이 많이 있어서 가끔 접하게 되는 코디가 되어 버립니다. 하지만, Generic을 사용할 때 여러가지 편의성이 있어서 일부러 사용하는 경우도 있으니까 반드시 이런 형태의 코드는 알아두어야만 하겠지요^^
Generic은 다형성이 적용되는 특징도 갖습니다. 바로 부모의 참조변수로 자식의 참조변수를 참조할 수 있다는 것입니다. 다형성의 개념!! Java에서 아무리 강조해도 지나치지 않는 개념이겠죠? 이것이 자바의 묘미일테니까요^^
간단하게나마 Generic의 원리에 대해 정리해보았습니다.
포스팅 글을 다시 한번 보니 정말 많이 부족함을 느낍니다. ㅠㅠ
갑자기 비가 많이 쏟아지네요. 장마기간이라서 날씨뉴스를 빠짐없이 체크해두심이 좋을 것 같네요^^
'IT > Java' 카테고리의 다른 글
awt 기본(화면 띄우기) (0) | 2013.08.07 |
---|---|
Interface(인터페이스) (0) | 2013.07.01 |
Generic 제너릭 (0) | 2013.06.25 |
Java 다차원 배열 (0) | 2013.06.24 |
Java 배열 매개변수 (0) | 2013.06.23 |