티스토리 뷰

반응형

 

41. 인터페이스의 요소들 - 2

 

| 여러 개의 인터페이스 구현하기

인터페이스는 구현 코드가 없으므로 하나의 클래스가 여러 인터페이스를 구현할 수 있음

디폴트 메서드 이름이 중복되는 경우 재정의함.

 

| 인터페이스 상속

인터페이스 간에도 상속이 가능함

구현이 없으므로, extends 뒤에 여러 인터페이스를 상속받을 수있음

구현 내용이 없으므로 타입 상속이라 함.

 

package bookshelf;

public class BookShelf extends Shelf implements Queue{

	@Override
	public void enQueue(String title) {
		shelf.add(title);
	}

	@Override
	public String deQueue() {
		return shelf.remove(0);
	}

	@Override
	public int getSize() {
		return getCount();
	}

}
package bookshelf;

public interface Queue {

	void enQueue(String title);
	String deQueue();
	
	int getSize();
}
package bookshelf;

import java.util.ArrayList;

public class Shelf {

	 protected ArrayList<String> shelf;
	 
	 public Shelf() {
		 shelf = new ArrayList<String>();
	 }
	 
	 public ArrayList<String> getShelf(){
		 return shelf;
	 }
	 
	 public int getCount() {
		 return shelf.size();
	 }
	 
}

 

 

 

package bookshelf;

public class BookShelfTest {

	public static void main(String[] args) {

		Queue bookQueue = new BookShelf();
		bookQueue.enQueue("Źé»ê¸Æ1");
		bookQueue.enQueue("Źé»ê¸Æ2");
		bookQueue.enQueue("Źé»ê¸Æ3");
		
		System.out.println(bookQueue.deQueue());
		System.out.println(bookQueue.deQueue());
		System.out.println(bookQueue.deQueue());
	}

}

 

 

 

 

 

 

42. 코딩해 보세요

 

package chapter9.sorting;

public class BubbleSort implements Sort{

	@Override
	public void ascending(int[] arr) {
		System.out.println("BubbleSort ascending");
	}

	@Override
	public void descending(int[] arr) {
		System.out.println("BubbleSort descending");		
	}
	
	@Override
	public void description() {
		Sort.super.description();
		System.out.println("BubbleSort ÀÔ´Ï´Ù");
	}
}
package chapter9.sorting;

import java.io.IOException;

public class SortTest {

	public static void main(String[] args) throws IOException {

		System.out.println("정렬방식을 선택 하세요.");
		System.out.println("B : BubbleSort ");
		System.out.println("H : HeapSort ");
		System.out.println("Q : QuickSort ");
		
		int ch = System.in.read();
		Sort sort = null;
		
		if(ch == 'B' || ch == 'b'){
			sort = new BubbleSort();
		}
		else if(ch == 'H' || ch == 'h'){
			sort = new HeapSort();
		}
		else if(ch == 'Q'|| ch == 'q'){
			sort = new QuickSort();
		}
		else{
			System.out.println("지원되지 않는 기능입니다.");
			return;
		}
		
		int[] arr = new int[10];
		sort.ascending(arr);
		sort.descending(arr);
		sort.description();
	}
}
package chapter9.sorting;

public interface Sort {

	void ascending(int[] arr);
	void descending(int[] arr);
	
	default void description(){
		System.out.println("숫자를 정렬하는 알고리즘 입니다");
	}	
}

바 인강이 듣고 싶다면 =>https://bit.ly/3ilMbIO

 

Java 웹 개발 마스터 올인원 패키지 Online. | 패스트캠퍼스

자바 기초문법부터 프로젝트 실습까지 Java 문법부터 스프링/스프링부트, 트렌디한 기술인 JPA까지 모두 배우는 온라인 강의입니다.

www.fastcampus.co.kr

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함