인터페이스

개념
- 일종의 추상 클래스로 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스 보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다 오직 추상 메서드와 상수만을 멤버로 가질수 있다

I. 인터페이스 (interface)


일종의 추상 클래스로 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스 보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다 오직 추상 메서드와 상수만을 멤버로 가질수 있다



II. 인터페이스 사용시 이점


1. 개발시간을 단축 시킬수 있다.
    동시에 다른 한 쪽에서는 인터페이스를 구현하는 클래스를 작성 하도록 하여 동시개발 가능
2. 표준화가 가능하다
    개발자들에게 인터페이스를 구현하여 프로그램을 일관되고 정형화된 프로그램의 개발이 가능하다
3. 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
    조상 클래스를 가지고 있지 않은 서로 관계없는 클래스들 에게 하나의 인터페이스를 제공함으로서
    관계를 맺어 줄 수 있다.
4. 독립적인 프로그래밍이 가능하다
    구현부와 선언부를 분리 시킬 수 있기때문에 실제 구현에 독립적인 프로그램을 작성하는 것이 가능하다.

 

 

 

III. 인퍼테이스 표기법

UML에서는 아래와 같이 클래스명 위에 <<interface>>라고 표기해서 클래스와 인터페이스를 구별하며 인터페이스를 구현하는 클래스와의 관계표시는 점선 화살표로 표기함

UNI00001e844e9c

IV. 인터페이스의 선언

인터페이스는 상수와 추상 메서드만을 가질 수 있으며 변수나 일반 메서드를 포함 할 수 없음.

인터페이스 선언 형식

  [접근 제어자] Interface 인터페이스이름 [extends 인터페이스이름]

  {

    [접근 제어자] 데이터형 상수이름 = 상수값; //상수 선언

    [접근 제어자] 데이터형 메서드이름(인자);

  }

V. 인터페이스 선언 예시

// CounterInterface 인터페이스를 선언

public interface CounterInterface {

   // int형 상수 MAX_COUNT를 선언  

    public int MAX_COUNT=3;

    // 인터페이스를 implements 하는 클래스에서 구현해야 하는 메서드의 원형을 정의

    public int addCount();

}

 

VI. 인터페이스의 구현

인터페이스를 구현한 클래스는 인터페이스에 선언된 모든 추상 메서드를 구현해야 함.

만약 구현되지 않은 추상 메서드가 있다면 자바 컴파일러는 에러를 출력한다. implement 지시자를 사용함.

인터페이스 구현 형식

// CounterInterface 인터페이스를 implements 함

public class Counter implements CounterInterface {

    private int count = 0;

    // CounterInterface 인터페이스의 추상 메서드인 addCount() 오버라이딩함.
    public int addCount() {

        // Counter 클래스의 멤버변수인 count의 값이 CounterInterface 인터페이스의 상수

        // MAX_COUNT와 같으면 count의 값을 0으로 설정함

        if(count==MAX_COUNT)

            return (count=0);        

        return ++count;

    }

댓글