21.12.01
:인터페이스
1. 인터페이스의 역할
①인터페이스란?
: 개발 코드와 객체가 서로 통신하는 접점이다.
②인터페이스의 역할
: 개발 코드가 객체에 종속되지 않게 하여 객체를 교체할 수 있도록 하는 역할을 한다
.
: 개발 코드 변경 없이 리턴값 또는 실행 내용이 다양해질 수 있다.(다형성)
③인터페이스 선언
: 인터페이스 이름 - 자바 식별자 작성 규칙에 따라 작성
: 소스 파일 생성
: 인터페이스 선언
[public]interface 인터페이스명 {...}
: 인터페이스의 구성 멤버 {...}
상수, 추상 메소드, 디폴트 메소드, 정적 메소드
★ interface 선언하기 ★
interface 인터페이스명 {
//상수(static final)
타입 상수명 = 값;
//추상 메소드
타입 메소드명(매개변수,...);
//디폴트 메소드
default 타입 메소드명(매개변수,...){...}
//정적 메소드
static 타입 메소드명(매개변수){...}
}
-상수 필드 선언
: 인터페이스는 상수 필드만 선언이 가능하다.
: 인터페이스에 선언된 필드는 모두 public static final의 특징을 갖는다.
: 상수명은 대문자로 작성한다.
: 선언과 동시에 초기값을 지정해야 한다.
[public interface RemoteControl{
public int MAX_VOLUME = 10;
public int MIN_VOLUME = 0;
}
-추상 메소드 선언
: 인터페이스를 통해 호출된 메소드는 최종적으로 객체에서 실행된다.
: 인터페이스의 메소드는 기본적으로 실행 블록이 없는 추상 메소드로 선언한다.
★추상 메소드 선언★
public interface RemoteControl{
public void turnOn();
public void turnOff();
public void setVolume(int volume);
}
-디폴트 메소드 선언
: 자바8에서 추가된 인터페이스의 새로운 멤버이다.
(public) default 리턴타입 메소드명(매개변수,...){...}
★디폴트 메소드 선언★
public interface RemoteControl{
default void setMute(boolean mute){
if(mute){
System.out.println("무음 처리합니다.");
}else{
System.out.println("무음 해제합니다.");
}
}
}
-정적 메소드 선언
(public) static 리턴타입 메소드명(매개변수,...){...}
★정적 메소드 선언★
public interface RemoteControl{
static void changeBattery(){
System.out.println("건전지를 교환합니다.");
}
}
3.인터페이스 구현
①구현 객체와 구현 클래스
: 인터페이스의 추상 메소드에 대한 실체 메소드를 가진 객체 = 구현 객체
: 구현 객체를 생성하는 클래스 = 구현 클래스
②구현 클래스 선언
: 자신의 객체가 인터페이스 타입으로 사용할 수 있음을 implements 키워드로 명시
public class 구현클래스명 implements 인터페이스명 {
//인터페이스에 선언된 추상 메소드의 실체 메소드 선언
}
②-①추상 메소드의 실체 메소드를 작성하는 방법
: 메소드의 선언부가 정확히 일치해야 한다.
: 인터페이스의 모든 추상 메소드를 재정의 하는 실체 메소드를 작정해야 ㅎ나다.
: 인터페이스의 모든 메소드는 public 접근 제한을 갖는다.
: 이클립스의 자동 생성 기능을 이용한다.
댓글