JAVA Programming/JAVA 문제

[49] 코딩해보세요 , 인터페이스로 정렬 알고리즘 구현하기

꾸준히개발하자 2020. 7. 17. 11:19

Sort 인터페이스 생성

package schedulerex;

public interface Sort {
	
	public void ascedning(int[] arr); // abstract 생략
	public void descending(int[] arr);
	
	default void description() { // default 메소드 적어줘야 한다.
		System.out.println("숫자를 구현한 알고리즘 입니다.");
	}
}

 

상속받아 구현한 BubbleSort 클래스 

package schedulerex;

public class BubbleSort implements Sort {

	@Override
	public void ascedning(int[] arr) {
		System.out.println("BubbleSort 입니다.");
	}

	@Override
	public void descending(int[] arr) {
		System.out.println("BubbleSort 입니다.");
	}

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

 

상속 받아 구현한 HeapSort 클래스 

package schedulerex;

public class HeapSort implements Sort  {

	@Override
	public void ascedning(int[] arr) {
		System.out.println("HeapSort 알고리즘 입니다.");
	}

	@Override
	public void descending(int[] arr) {
		System.out.println("HeapSort 알고리즘 입니다.");
	}

	@Override
	public void description() {
		Sort.super.description();
		System.out.println("HeapSort 알고리즘 입니다.");
	}
}

상속 받아 구현한 QuickSort 클래스 입니다. 

package schedulerex;

public class QuickSort implements Sort {

	@Override
	public void ascedning(int[] arr) {
		System.out.println("QuickSort 입니다.");
	}
	@Override
	public void descending(int[] arr) {
		System.out.println("QuickSort 입니다.");
	}
	@Override
	public void description() {
		Sort.super.description();
		System.out.println("QuickSort 입니다.");
	}
}

 

 

package schedulerex;

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; // 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.ascedning(arr);  // (int[] arr) 에 배열객체를 넣는다. 
		sort.descending(arr);
		sort.description();
	}
}