[Java] 인터페이스 - 예제

나영원·2020년 8월 30일
0

Java_basic

목록 보기
52/60

정렬알고리즘 구현하기

다음과 같이 여러 정렬 구현 알고리즘이 입력에 따라 실행될 수 있도록 구현해 보세요.

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

}

Sort인터페이스를 만들고 int[] arr을 매개변수로하는 asceding()과 descending()메서드를 만든 후 default메서드로 description 을 추가합니다.

public class BubbleSort implements Sort {
	
	
	
	public void ascending(int[] arr) {
		System.out.println("BubbleSort ascending");
	}

	public void descending(int[] arr) {
		System.out.println("BubbleSort decending");
		
	}

	@Override
	public void description() {
		Sort.super.description();
		System.out.println("BubbleSort입니다");
	}
}

인스턴스를 구현할 BubbleSort 클래스를 만들고 ascending()과 desceding() 메서드를 만들어 출력문을 출력합니다. default 클래스를 재정의하여 출력문을 추가합니다. 이후 HeapSort클래스와 QuickSort클래스를 만들어 같은 작업을 반복해 줍니다.

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();

	}

}
// 결과
정렬방식을 선택하세요.
B : BubbleSort
H : HeapSort
Q : QuickSort
H
HeaSort ascending
HeaSort decending
숫자를 정렬하는 알고리즘입니다
HeaSort입니다

Test 클래스를 만들고 출력문을 출력 후 정렬방식을 입력받기 위해 System.in.read()를 작성 후 if if-else문을 통해 입력값에 따라 다른 정렬방식의 인스턴스를 생성합니다. 그후 생성된 인스턴스에 asceding(),desceding(),description() 메서드를 실행하면 결과값같이 나오게 됩니다.

profile
배우는 개발 일기

0개의 댓글