본문 바로가기

JAVA

[이것이 자바다] 08 인터페이스

* 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다.
발전을 위한 피드백과 지적은 언제나 환영합니다. 

8.1 인터페이스의 역할 ~ 8.3 인터페이스 구현

(p. 344 ~ 3)

 

  • 인터페이스는 개발코드와 객체가 서로 통신하는 접점 역할을 한다.
  • 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서 사용
  • 하나의 객체가 아니라 여러 객체들과 사용이 가능

 


 

  • 상수필드 (Constant Field) : 인터페이스에서 필드 선언은 반드시 상수 (초기값 대입해야됨)
  • 추상 메소드 (Abstract Method) : 실제 실행부는 객체(구현 객체)가 가지고 있고 객체가 가지고 있는 메소드를 설명한 것 (매개값과 리턴타입)

 

public interface RemoteControl {
	public int MAX_VOLUME = 10;
	public int MIN_VOLUME = 0;
	//상수 필드 선언

	public void turnOn();
	public void turnOff();
	public void setVolume(int volume);
	//추상 메소드
}
  • 추상메소드는 구현 객체에서 반드시 실체 메소드로 재정의!

 

public class RemoteControlExample{
	public static void main(String[] args){
		RemoteControl rc;
		rc = new Television();
		rc = new Audio();
	}
}
// RemoteControl 인터페이스로 구현객체인 TV, Audio 사용하는법

 

8.3.2 익명 구현 객체

  • UI 프로그래밍에서 이벤트를 처리하거나 임시 작업 스레드를 만들기 위해 익명 구현 객체를 많이 활용함. (ex. new ActionListener { ... 메소드 재정의 ...})

 

👉
인터페이스는 자신이 가지고 있는 메소드가 implements 되어지기만 하면, 사용할 수 있다.
그렇기 때문에, ActionListener a = new ActionListener( ); 와 같이 인터페이스의 객체를 생성할 수는 없지만, new ActionListener() {... 메소드 오버라이딩 ...} 을 통해, 인터페이스를 implements 하는 객체를 만들어 낼 수는 있다.

다만, EventHandler 클래스와 같이, 명시적인 클래스명을 가지지는 않았기 때문에, 익명 클래스라고 부른다.

 

인터페이스 변수 = new 인터페이스() {
	// 인터페이스에 선언된 추상 메소드의 실체 메소드 선언
}

 

  • 인터페이스 → 객체 만들 수 없는 이유 : 추상메소드 때문. (추상메소드 재정의하면 사용 가능)

 

* 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다.
발전을 위한 피드백과 지적은 언제나 환영합니다. 

 

Notion2Tistory

 

boltlessengineer.github.io

이것이 자바다 (신용권의 Java 프로그래밍 정복)

 

이것이 자바다

『이것이 자바다』은 15년 이상 자바 언어를 교육해온 자바 전문강사의 노하우를 아낌 없이 담아낸 자바 입문서이다. 자바 입문자를 배려한 친절한 설명과 배려로 1장에 풀인원 설치 방법을 제

book.naver.com