IT/솔루션) Power Java

Power JAVA 10장 ) 인터페이스와 다형성 - Programming_4

돔찌 2019. 5. 12. 17:58

<2016. 10. 11. 12:31>

 

Power JAVA 10장 ) 인터페이스와 다형성 - Programming_4

 

/* 
 * Person 이라는 클래스를 정의하라.
 * Person은 이름(name)과 키(height)를 필드로 가진다.
 * Person은 본문에 나오는 Comparable 인터페이스를 구현한다.
 * 이 Comparable 인터페이스를 이용하여서 가장 키 큰 사람의 이름을 반환하는
 * 메소드 getMaximum(Person[] array)를 구현하고 테스트하라.
 */
package Programming_4;
import java.util.*;
//Person 이라는 클래스를 정의하라. Person은 본문에 나오는 Comparable 인터페이스를 구현한다.
class Person implements Comparable {
	// Person은 이름(name)과 키(height)를 필드로 가진다.
	private String name;
	private int height;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getHeight() {
		return height;
	}
	public void setHeight(int height) {
		this.height = height;
	}
	public Person(String name,int height) {
		this.name = name;
		this.height = height;
	}
	public int compareTo(Object obj) {
		Person other = (Person) obj;
		if (height > other.height)
		   return 1; else if (height < other.height)
		   return -1; else
		   return 0;
	}
	public String toString() {
		return name+","+height;
	}
}
public class PersonTest {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		Person[] people = new Person[5];
		for (int i=0; i< people.length; i++) {
			System.out.print(" 이름 입력 : ");
			people[i] = new Person(input.nextLine(),(int)(Math.random()*30)+160);
			System.out.println(people[i].toString());
		}
		System.out.printf("가장 키가 큰 사람은 %s 입니다.\n",getMaximum(people));
	}
	//이 Comparable 인터페이스를 이용하여서 가장 키 큰 사람의 이름을 반환하는 메소드 getMaximum(Person[] array)를 구현하고 테스트하라.
	public static String getMaximum(Person[] array) {
		int mostarray = 0;
		String mostname;
		for (int i=1; i<array.length; i++) {
			if(array[i].compareTo(array[mostarray]) == 1) {
				mostarray = i;
				mostname = array[i].getName();
			}
		}
		return array[mostarray].getName();
	}
}