[JAVA]인터페이스의 사용법
2012. 11. 6. 11:52ㆍ개발관련기록/Java
반응형
인터페이스를 사용하면서 얼마나 큰 이식성과 확장성이 있을까에 대해 항상 의문이 있었다.
인터페이스의 사용방법은 Implements로 Interface의 선언만 되어진 함수에 대해 정의를 하고
정의가 되어진 Implements(구현)를 포함하는 Class를 객체화 시켜 사용을 한다.
자 여기까진 어느정도 이해가 되었지만 정확하게 어떻게 사용하면 이점이 있는지에 대해서는
소스를 살펴 보면서 이해해 보도록 하자.
간략히 이점만 말하겠다.
main3.java에서 사용된 부분에서 객체화 시킨 클래스는
implements를 한 PrintNameCard3impl 의 객체를 만들어 사용해도 같은
PrintNameCard3 Type으로 간주한다.
다시 말해서 NameCard라는 클래스를 수정할 필요 없이 사용할때마다 Implements 시킨 클래스를 추가 또는 수정하여 확장성을 넓혀 갈수 있다.
자세한 설명은 http://dante2k.egloos.com/199169 이 블로그에 소개 되어 있으니 참고 바란다.
MAIN3.java
package com.wook.test3; public class main3 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub NameCard3 nc = new NameCard3(); nc.name = "이름은 이욱진입니다"; nc.email = "wookjin1.lee@doosan.com"; PrintNameCard3impl p = new PrintNameCard3impl(); nc.setPrintName(p); nc.print(); System.out.println("------------다음-------------"); PrintNameCard31impl p1 = new PrintNameCard31impl(); nc.setPrintName(p1); nc.print(); } }
NameCard3 .java
package com.wook.test3;
public class NameCard3 { String name; String email; PrintNameCard3 pnc; public void setPrintName(PrintNameCard3 p){ this.pnc = p; } public void print(){ pnc.print(this); } }
PrintNameCard3 .java
package com.wook.test3; interface PrintNameCard3 { public void print(NameCard3 nc); }
PrintNameCard31impl .java
package com.wook.test3; public class PrintNameCard31impl implements PrintNameCard3{ @Override public void print(NameCard3 nc) { // TODO Auto-generated method stub System.out.println("이름 : " +nc.name); System.out.println("이멜 : " + nc.email); } }
PrintNameCard3impl .java
package com.wook.test3; public class PrintNameCard3impl implements PrintNameCard3{ @Override public void print(NameCard3 nc) { // TODO Auto-generated method stub System.out.println("이름 : "+nc.name); } }
반응형
'개발관련기록 > Java' 카테고리의 다른 글
[Java] 암호화 복호화 Base64 (0) | 2013.11.13 |
---|---|
[JAVA]Thread 의 의미!?!?!!! (0) | 2012.11.06 |
이클립스 단축키 사용하기 (0) | 2012.08.30 |
이클립스 환경에서 AWT에서 한글이 깨질 때 (0) | 2012.07.03 |
[문법을뚫자][ "==" 과 "equals()" 의 차이점] (0) | 2011.08.16 |