[QUIZ] 인터페이스 구현 : 약수와 약수의 합


약수와 약수의 합 구하기


Quiz) 상속/인터페이스 약수 구하기 > 다시풀어보기 :’(


  • Main Class
public class Main {

	public static void main(String[] args) {

		//두 정수 사이의 랜덤값 구하기
		//(int)((최댓값-최솟값+1)*Math.random()+최솟값);
		
		int rndValParam = (int)((11)*Math.random()+10);
		System.out.println("생성된 랜덤 값 : " + rndValParam);
		
		YaksuList yaksuList = new YaksuList(rndValParam);
		yaksuList.mtdYaksu();
		
		YaksuList yaksuSum = new YaksuSum(rndValParam);
		yaksuSum.mtdYaksu();
	}

}
  • Yaksu.java(interface)
public interface Yaksu {
	
	public abstract void mtdYaksu();

}
  • YaksuList.java (Super Class)
public class YaksuList implements Yaksu{

	private int rndNum;
	
	public YaksuList(int rndNum) {
		this.rndNum = rndNum;
	}

	public int getRndNum() {
		return rndNum;
	}

	@Override
	public void mtdYaksu() {
		
		System.out.println("\n약수");
		
		for (int i = 1; i <= rndNum; i++) {
			
			if (rndNum % i == 0) {
				System.out.print(i);
				
				if (i < rndNum) {
					System.out.print(", ");
				
				}
			}
		}
	}
}
  • YaksuSum.java (Sub Class)
public class YaksuSum extends YaksuList {

	public YaksuSum(int rndNum) {
		super(rndNum);
	}
	
	@Override
	public void mtdYaksu() {
		
		System.out.print("\n\n약수의 합 : ");
		
		int sum = 0;
		
		for (int i = 1; i <= getRndNum(); i++) {
			if (getRndNum() % i == 0) {
				sum += i;
			}
		}
		System.out.print(sum);
	}
}
  • 출력결과
생성된 랜덤  : 20

약수
1, 2, 4, 5, 10, 20

약수의  : 42

--------------------

생성된 랜덤  : 10

약수
1, 2, 5, 10

약수의  : 18

Categories:

Java