drexqq

[Java, 자바] Sorting(정렬).ver3 본문

공부노트/개인공부!

[Java, 자바] Sorting(정렬).ver3

drexqq 2020. 6. 1. 19:16
728x90
반응형

드디어 Sorting의 마지막 버전일 것 같다.

 

이번에는 Sorting이라는 기능을 객체화시켜서 만들어 보았다.

 

mainClass.java

package sortingClass;

public class mainClass {
	public static void main(String[] args) {
		
		Sorting sort = new Sorting();
		sort.input();
		sort.sorting();
		sort.result();
		
	}
}

Sorting.java

package sortingClass;

import java.util.Scanner;

public class Sorting {
	
	//멤버변수 (두 가지 이상 메소드에서 접근해야하는 경우에 선언)
	int number[];
	boolean updown;
	
	//처리
	public void input() {
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정렬할 갯수 = ");
		int count = sc.nextInt();
		
		number = new int[count];
		for (int i = 0; i < number.length; i++) {
			System.out.println((i + 1) + "번째 수");
			number[i] = sc.nextInt();
		}
		System.out.println("오름차순(1), 내림차순(2) = ");
		int ud = sc.nextInt();
		if (ud == 1) updown = true;
		else		 updown = false;
		
		sc.close();
	}
	
	public void sorting() {
		for (int i = 0; i < number.length - 1; i++) {
			for (int j = i + 1; j < number.length; j++) {
				
				if (updown) {
					if (number[i] > number[j]) {
						swap(i, j);
					}
				}
				else {
					if (number[i] < number[j]) {
						swap(i, j);
					}
				}
				
			}
		}
	}
	
	public void swap(int i, int j) {
		int temp = number[i];
		number[i] = number[j];
		number[j] = temp;
	}
	
	public void result() {
		for (int i = 0; i < number.length; i++) {
			System.out.println(i + " : " + number[i]);
		}
	}
	
}

 

객체화를 하게되면 메인에 들어가는 내용 자체가 현저히 적어지고 관리가 용이해진다.

 

이전 게시글들의 경우는 모두 절차지향적으로 코드를 작성했다면 앞으로는 객체지향적 프로그래밍을 해야겠다.

728x90
반응형
Comments