로그인 바로가기

중앙 내용으로 바로가기

엠아이티 능력개발원

본문내용

본문

JAVA 학습
+ Home > 커뮤니티 > JAVA 학습

 

인터페이스(Interface)란 무엇입니까?
  • 작성자
    관리자
  • 등록일
    2018-04-10 09:01:44
    조회수
    64

 

 

 

이미 배웠 듯이, 객체는 자신이 드러내는 방법을 통해 외부 세계와의 상호 작용을 정의합니다. 메서드 는 외부 세계와 의 개체 인터페이스 를 형성합니다 예를 들어 텔레비전 전면의 버튼은 플라스틱 케이싱의 다른쪽에있는 전기 배선과의 인터페이스입니다. "전원"버튼을 눌러 TV를 켜고 끕니다.

가장 일반적인 형식에서 인터페이스는 아무 내용이 없는 관련 메서드 그룹입니다. 인터페이스로 지정된 경우 자전거의 동작은 다음과 같이 나타날 수 있습니다.

 

interface Bicycle {

   // 분당 바퀴 회전 수
void changeCadence(int newValue); void changeGear(int newValue); void speedUp(int increment); void applyBrakes(int decrement); }

이 인터페이스를 구현하려면 클래스 이름을 (예 :와 같은 특정 브랜드의 자전거로 ACMEBicycle) 변경 implements하고 클래스 선언에서 키워드를 사용하십시오 .

class ACMEBicycle implements Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;
  
   //컴파일러는 이제 changeCadence, changeGear, speedUp, applyBrakes 
   //의 4개 메소드를 요구하게 됩니다. 따라서 4개의 메소드가 모두 구현되어야 하며
  // 누락시 컴파일에러를 발생시킵니다.
 
    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

 

 

인터페이스를 구현하면 클래스가 제공 할 것으로 예상되는 동작에 대해보다 형식화 될 수 있습니다. 인터페이스는 클래스와 외부 세계 사이의 계약을 형성하며,이 계약은 컴파일시 컴파일시에 적용됩니다. 클래스가 인터페이스를 구현한다고 주장하면 클래스가 성공적으로 컴파일되기 전에 해당 인터페이스로 정의 된 모든 메소드가 소스 코드에 나타나야합니다.


 


참고 :  실제로 ACMEBicycle클래스를 컴파일하려면 public구현 된 인터페이스 메소드의 시작 부분에 키워드를 추가해야 합니다. 나중에 클래스와 객체 , 인터페이스 및 상속 에 대한 학습에서 이유를 배웁니다 .

 

 

목록보기
답글달기수정하기
삭제하기

관련 쪽지글