어읽로꾸거
JAVA 인터페이스 정리 본문
인터페이스는 객체의 사용 방법을 정의한 타입
개발코드와 객체가 통신하는 중간역할을 한다고 생각하면 좋을듯
코드가 직접 메소드를 불러오면 좋지만, 중간에 인터페이스를 거치는 이유는 코드를 수정하지 않고 객체를 변경하기에 용이하기 때문
코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출한다.
인터페이스 선언
interface 인터페이스 {
//상수
타입 상수이름 = 초기값(못바꿈);
//추상 메소드
타입 메소드이름(매개변수 ..);
//디폴트 메소드
default 타입 메소드이름(매개변수 ..);
//정적 메소드
static 타입 메소드이름(매개변수 ..);
}
상수 필드
인터페이스는 객체 사용설명서이므로 데이터를 저장하는 필드는 선언할 수 없다
하지만 상수필드는 선언 가능
상수는 인터페이스에 고정된 값으로 런타임시 바꿀 수 없음 그러므로 반드시 초기값을 대입해야함
모두 자동으로 public static final 속성을 갖는다
추상 메소드
객체가 갖고있는 메소드를 설명한것
실제 실행부분은 객체가 갖고있음 그래서 실제 작동부분을 가지지 않고(대괄호{}가 없음)
리턴타입 메소드명 매개변수만 갖고있음
자동으로 public abstract 특성을 갖는다
디폴트 메소드
인터페이스에 선언되지만, 객체가 갖고있는 인스턴스 메소드라고 생각해야함
따라서 형태는 인스턴스 메소드와 동일하다
디폴트 메소드는 자동으로 public 특성을 갖는다
정적 메소드
디폴트메소드와 달리 객체가 없어도 호출이 가능함
형태는 정적static 메소드와 동일하다
이것도 public 특성을 갖는다
'정리' 카테고리의 다른 글
[Java] HashMap, HashTable, ConcurrentHashMap 비교 (0) | 2019.07.01 |
---|---|
[python] Queue.Queue vs collections.deque (0) | 2019.04.22 |
자료구조 - 힙(Heap) with C (0) | 2019.04.13 |
자료구조 - 트리(Tree) with C (0) | 2019.04.07 |
자료구조 - 연결 리스트(Linked List) with C (0) | 2019.04.06 |