티스토리 뷰

 

더보기

상속(Ingeritance) / 다형성(poly) 을 쓰는 이유 ? => 객체지향을 쓰는 이유와 같다.

간단하게 유지보수 라고 압축하겠음.

객체지향에 관한 글은 아래에 있으니 다시 읽으러 가기 ! 

2024.02.07 - [2월] - 2024.02.07_ 객체 지향 프로그래밍 , 메소드 , 클래스 (+ 객체, 인스턴스)

 

 

 

인터페이스(Interface)

1. 인터페이스의 모든 메소드는 public abstract 로 선언(Java 7버전 까지)
 -> public abstract 수식어 생략 가능
2. 인터페이스의 모든 멤버 변수는 public static final 로 선언
 -> public static final 수식어 생략 가능 
3. 인터페이스를 선언할 때는 interface 키워드 사용 
4. 인터페이스를 구현(상속) 하는 클래스는 implements 키워드 사용 
5. 클래스는 다중 상속이 불가능 
     (예)  class Child extends Parent1, Parent2 (X)
6. 인터페이스는 다중 구현이 가능 
     (예) class Child implements Inter1, Inter2 (O)
7. Interface 는 인스턴스 생성이 불가능 하다

 

DataBaseQuery

  • interface 멤버 변수는 public static final 을 사용하며, 생략할 수 있음 
  • interface 메소드는 public abstract 를 사용하며, 생략가능하다 
  • abstract 이 붙기 때문에 추상 메소드라고 생각하면 되며, 인스턴스를 생성 불가하다는 특징이 있음

위 인터페이스를 상속받은 OracleDatabaseQuery 클래스

 

 

new 로 클래스를 생성할 떄 interface > add 해서 상속받으면 알아서 override 해둔다 

 

 

DataBaseQuery를 상속받은 dummyImple 클래스

 

main

 

인터페이스는 인스턴스 생성이 불가능 해서 다형성으로 해결

인터페이스명 변수명 = new 클래스명(); 

 

실행 결과

 

 

 

인터페이스가 가질 수 있는 멤버들

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

인터페이스를 사용한 연락처 프로그램 만들기의 순서

Main 은 MVC 디자인 패턴에서 View 클래스 : UI를 담당하는 역할이며 현재의 시스템은 규모가 작으므로 Controller 역할도 수행

MemberDAO (인터페이스)  main에서 데이터를 전송받고 돌려준다. 

main에서 데이터를 전송하면 DB에 저장하고, main에서 데이터를 요청하면 DB에서 돌려주는 형식 

MemverVO(클래스) 는 MVC 디자인 패턴에서 Model 클래스, 데이터 정보 or DTO(Data Transfer Object)


 

1. MemberVO(클래스) 는 데이터 정보를 가지고 있어야 하므로 

이 클래스에서 멤버 변수(필드, 프로퍼티) , 기본 생성자 , 멤버변수 생성자 , getter/setter , toString()까지 선언해준다. 

 

2. MemberDAO(인스턴스) 에서 메소드 설계하고,  MemberDAOImple(클래스) 만들때  new>class>interfaces > add 해서 

MemberDAO의 메소드를 override 해준다

 

3. Main 작성하면서 ㅎㅎ

 

MemberVO

 

 

MemberDAO

 

MemberDAOImple

 

MemberDAO 설계하고 인터페이스를 상속(?)하면 알아서 override 된다 

 

MemberDAOImple

 

main을 작성하면서 회원 정보를 저장할 배열 list 만들어주고 

최대 회원수 변수 선언, 배열에 저장될 데이터 개수도 선언해주고 

private 이므로 간접적으로 읽어주는 getCount() 도 생성해준다 

 

MemberMain

 

MemberDAOImple 인스턴스를 저장하는 변수를 선언해주고 

싱글톤 인스턴스를 생성해준다

 

MemberMain

 

Menu를 main문 밖에서 선언할 수도 있지만 가독성과 유지보수를 위해 

Menu 클래스를 따로 만들어주고 

swtich문에서 사용하기 위해 

클래스명.상수명

입력한다. 

물론 해당 클래스에 implements Menu

입력해도 되지만

가독성을 위해 위와 같이 입력함 

 

Menu 클래스

 

 

회원 정보 등록 메소드

 

정보 전체 출력 메소드
상세 검색 메소드
수정 메소드

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함