2022. 4. 14. 20:03ㆍjava/java
*인터페이스 이름
-자바 식별자 작성 규칙에 따라 작성
1)첫자는 대문자로 시작하는 것이 관례
2)숫자로 시작하면 안되고, $와 _를 제외한 특수 문자는 안됨
3)다른 언어가 결합되면 첫 알파벳은 대문자로 하는 것이 관례
*인터페이스 선언
[public interface 인터페이스명 {
//상수
-타입 상수명 = 값; //초기값을 주지 않으면 컴파일 에러남
//추상메소드
-타입 메소드명();
//디폴트 메소드 // 자바 8부터 추가됨
-default 타입 메소드명() { } //실행하려고 하면 인터페이스 구현 객체 필요
//정적메소드 // 자바 8부터 추가됨
-static 타입 메소드명() { }
}
1) 상수 필드 선언
-인터페이스는 상수 필드만 선언이 가능하다.
//데이터를 저장하지 않기 때문에 데이터를 저장할 인스턴스 또는 정적 필드가 필요 없다.
-인터페이스 선언된 필드는 모두 public static final의 특징을 갖는다.
//필드 선언 시에 public, static, final을 생략하더라도 자동적으로 컴파일 과정에서 붙게 된다.
-상수명은 대문자로 작성한다.
//서로 다른 단어로 구성되어 있을 경우에는 _로 연결하는 것이 관례
-선언과 동시에 초기값을 지정해야 한다.
//static{ } 블록을 작성할 수 없으므로 static { } 으로 초기화할 수 없다.
public interface RemoteControl {
public int MAX_VOLUME = 10;
public int MIN_VOLUME = 0;
}
2)추상 메소드 선언
-인터페이스를 통해 호출된 메소드는 최종적으로 객체에서 실행된다.
-인터페이스의 메소드는 기본적으로 실행 블록이 없는 추상 메소드로 선언한다.
public interface RemoteControl {
public void turnOn();
public void turnOff();
public void setVolume(int volume);
}
3)디폴트 메소드 선언
-자바8 에서 추가된 언터페이스의 새로운 멤버이다.
public default 리턴타입 메소드명(매개변수,...) { }
-실행 블록을 가지고 있는 메소드이다.
-default 키워드를 반드시 붙여야 한다.
-기본적으로 public 접근 제한을 가지므로 생략하더라도 컴파일 과정에서 붙는다.
public interface RemoteControl {
default void setMute(boolean mute) {
if(mute) {
System.out.println("무음 처리합니다.");
} else {
System.out.println("무음 해제합니다.");
}
}
}
4)정적 메소드 선언
-자바8에서 추가된 인터페이스의 새로운 멤버이다.
public static 리턴타입 메소드명(매개변수,...) {...}
public interface RemoteControl {
static void channgeBattery() {
System.out.println("건전지를 교환합니다.");
}
}
'java > java' 카테고리의 다른 글
인터페이스 구현(2) (0) | 2022.04.15 |
---|---|
인터페이스 구현(1) (0) | 2022.04.15 |
인터페이스의 역할 (0) | 2022.04.14 |
Set-HashSet (보완 필요) (0) | 2022.03.26 |
Generic (보완 필요) (0) | 2022.03.26 |