[JAVA] 자바 정복기 - 인터페이스

개발log·2024년 4월 3일

JAVA

목록 보기
8/8
post-thumbnail

인터페이스 (Interface)

  • 개발 코드는 인터페이스를 통해서 객체와 서로 통신한다.
  • 인터페이스의 메소드 호출하면 객체의 메소드가 호출된다.
  • 개발 코드를 수정하지 않으면서 객체 교환이 가능하다.

인터페이스 선언

  • ~.java 혙애 소스파일로 작성 및 컴파일러 통해 ~.class 형태로 컴파일 된다.
  • 클래스와 물리적 파일 형태는 같으나 소스 작성 내용이 다르다.
[public] interface 인터페이스이름 {...}
  • 인터페이스는 객체로 생성할 수 없으므로 생성자 가질 수 없다.
interface 인터페이스 이름 {
	//상수
    타입 상수이름 = 값;
    //추상 메소드
    타입 메소드이름(매개변수,..);
}

상수 필드 선언

  • 데이터를 저장할 인스턴스 혹은 정적 필드 선언 불가
  • 상수 필드만 선언 가능
[public static final] 타입 상수이름 =;
  • 상수 이름은 대문자로 작성하되 서로 다른 단어로 구성되어 있을 경우 언더바(_)로 연결
public interface RemoteControl{
	public int MAX_VOLUME = 10;
    public int MIN_VOLUME = 0;
}

추상 메소드 선언

  • 인터페이스 통해 호출된 메소드는 최종적으로 객체에서 실행
  • 인터페이스의 메소드는 실행 블록 필요없는 추상 메소드로 선언
[public abstract] 리턴타입 메소드이름(매개변수, ...);
public interface RemoteControl {
	//추상 메소드
    public void turnOn();
    public void turnOff();
    public void setVolume(int volume);
}

인터페이스 구현

구현 클래스

  • 인터페이스에서 정의된 추상 메소드를 재정의해서 실행내용을 가지고 있는 클래스
  • 클래스 선언부에 implements 키워드 추가하고 인터페이스 이름 명시
public class 구현클래스이름 implements 인터페이스이름 {
	//인터페이스에 선언된 추상 메소드와 실체 메소드 선언
}
public class TV implements RemoteControl{
	//turnOn() 추상 메소드의 실체 메소드
    public void turnOn() {
    	System.out.println("TV를 켭니다.");
    }
    //turnOff() 추상 메소드의 실체 메소드
    public void turnOn() {
    	System.out.println("TV를 끕니다.");
    }
}

인터페이스와 구현 클래스 사용 방법

  • 인터페이스 변수 선언하고 구현 객체를 대입
인터페이스 변수;
변수 = 구현객체;
인터페이스 변수 = 구현객체;

다중 인터페이스 구현 클래스

  • 객체는 다수의 인터페이스 타입으로 사용 가능
public class 구현클래스이름 implements 인터페이스A, 인터페이스B {
	//인터페이스 A에 선언된 추상 메소드의 실체 메소드 선언
    //인터페이스 B에 선언된 푸상 메소드의 실체 메소드 선언
}

인터페이스 사용

  • 인터페이스는 필드, 매개변수, 로컬 변수의 타입으로 선언 가능

정리

  • 인터페이스: 객체의 사용 방법 정의한 타입
  • 상수 필드: 인터페이스의 필드는 기본적으로 public static final 특성 가짐
  • 추상 메소드: 인터페이스의 메소드는 public abstract 생략되고 메소드 선언부만 있는 추상 메소드
  • implements: 구현 클래스에는 어떤 인터페이스로 사용 가능한지 기술하기 위해 사용
  • 인터페이스 사용: 클래스 선언 시 필드, 매개변수, 로컬 변수로 선언 가능, 구현 객체를 대입
profile
나의 개발 저장소

0개의 댓글