JAVA_18_인터페이스(Interface) & 제한자(final)

hyeong taek jo·2023년 7월 7일

JAVA

목록 보기
18/39

📌1. 제한자

  1. 클래스 앞에 붙일경우
    상속금지
    ex> public final class Test{ }

  2. 멤버 메소드 앞에 붙일경우
    오버라이딩 금지
    ex> public final void print(){}

  3. 멤버변수 앞에 붙일 경우--> 상수
    ex> public final int PORT_NUMBER=80;
    상수화된다. -> 변경금지

📌2. 인터페이스

1) 일종의 추상클래스. 추상클래스(미완성 설계도)보다 추상화 정도가 높다.
2) 실제 구현된 것이 전혀 없는 기본 설계도.(알맹이 없는 껍데기)
3) 추상메서드와 상수만을 멤버로 가질 수 있다.

  • 모든 멤버변수는 public static final 이어야 하며, 이를 생략가능
  • 모든 메서드는 public abstract 이어야 하며, 이를 생략가능

4) 인스턴스를 생성할 수 없다.
5) 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용된다
6) class’대신 ‘interface’를 사용한다는 것 외에는 클래스 작성과 동일하다

📌3. 인터페이스 상속

  • 인터페이스도 클래스처럼 상속이 가능하다.(클래스와 달리 다중상속 허용)
  • 인터페이스는 Object클래스와 같은 최고 조상이 없다. .
  • interface끼리 상속받을 수 있다.(extends를 사용)

📌4. 인터페이스의 구현

  • ‘implements’를 사용한다.
  • 인터페이스에 정의된 추상메서드를 완성해야 한다
  • 상속과 구현이 동시에 가능하다

예시

public interface Lenderable {
	// 상태값 표시(상수)
	int BORROW = 1;  // 빌려간 상태
	int NORMAL = 0;  // 대여 가능상태
	
	void borrowPossible(String borrower,String date);
	void returnPossible();
}

class SeperateVolume implements Lenderable {
	String title;    // 초기 생성시 값 입력 --> 젊은 베르테르 슬픔
	String date;     // 2022/07/25
	String borrower; // 정승환/박윤하
	int    status;   // 상태값    0
	
	SeperateVolume(String title) {
		this.title = title;
	}
	
	public void borrowPossible(String borrower, String date) {
		if (status != NORMAL) return; //return하면 아래 문장 진행안함
		this.date     = date;
		this.borrower = borrower;
		status        = BORROW;
		// BORROW = 1; 안됨
		System.out.println(borrower + "가 "+date+"일에 "+ title + "을 대여했다.");
	}
	
	public void returnPossible() {
		if (status != BORROW) return;
		System.out.println(borrower + "가 "+ title+ " 을 반납했다.");
		date     = null;
		title    = null;
		borrower = null;
		status   = NORMAL;
	}
}
public class LenderableEX {
	
	public static void main(String[] args) {
		SeperateVolume sv = new SeperateVolume("젊은 베르베르 슬픔");
		sv.borrowPossible("정승환/박윤하", "2023/07/25");
		sv.returnPossible();
	}
}

정승환/박윤하가 2023/07/25일에 젊은 베르베르 슬픔을 대여했다.
정승환/박윤하가 젊은 베르베르 슬픔 을 반납했다.

profile
마포구 주민

0개의 댓글