728x90
반응형

문제

public interface ArrayInterface {
	//int array[]={3,5,2,4,1};
	
	//배열의 가장 큰 값과 작은 값의 차이
	int MaxSubMin(int[] a);
	
	//배열의 가장 큰 값을 구해 맨 마지막 값과 위치 바꾸기
	void MaxChange(int[] a);
	
}
  • 인터페이스 ArrayInterface의 추상 메소드를 모두 구현한 클래스 ArrayClass를 작성하시오.
  • 배열의 가장 큰 값과 작은 값의 차이를 반환하는 MaxSubMin 메소드와 배열의 가장 큰 값을 맨 마지막 값의 위치와 변경하는 MaxChange 메소드를 오버라이딩하여 작성하시오.

 

 

▶ ArrayClass코드

public class ArrayClass implements ArrayInterface{
	//배열의 가장 큰 값과 작은 값의 차이 구하기
	@Override
	public int MaxSubMin(int[] a) {
		int MaxIndex=0, MinIndex=0;
		for(int i=1;i<a.length;i++){
			if(a[MaxIndex]<a[i])
				MaxIndex=i;
			if(a[MinIndex]>a[i])
				MinIndex=i;
		}
		return (a[MaxIndex]-a[MinIndex]);
	}//MaxSubMin_end

	//배열의 가장 큰 값을 맨 마지막 값과 위치 바꾸기
	@Override
	public void MaxChange(int[] a) {
		int MaxIndex=0, temp;
		for(int i=1;i<a.length;i++)
			if(a[MaxIndex]<a[i])
				MaxIndex=i;
		
		temp=a[MaxIndex];
		a[MaxIndex]=a[a.length-1];
		a[a.length-1]=temp;
	}//MaxChange_end
}

 

 

▶ main 코드

		ArrayClass a = new ArrayClass();
		int array[]={3,5,2,4,1};
		System.out.println("배열:"+Arrays.toString(array));
		
		//배열의 가장 큰 값과 작은 값의 차이
		System.out.println("배열의 가장 큰 값과 작은 값의 차이:"+a.MaxSubMin(array));
		
		//배열의 가장 큰 값을 맨 마지막 값과 위치 바꾸기
		a.MaxChange(array);
		System.out.println("배열의 가장 큰 값과 마지막 배열 값의 위치 변경:"+Arrays.toString(array));

 

 

▶ 출력 결과

배열:[3, 5, 2, 4, 1]
배열의 가장 큰 값과 작은 값의 차이:4
배열의 가장 큰 값과 마지막 배열 값의 위치 변경:[3, 1, 2, 4, 5]

 

 

 

 

 

 

[JAVA] 추상 클래스와 인터페이스 실습 (15일차)

1. 추상 클래스 2. 인터페이스 3. 패키지 4. Object 클래스 5. Wrapper 클래스 6. String 객체 7. Math 클래스 1. 추상클래스 ▶ Calculator 코드 public abstract class Calculator { public abstract int add(int a, int b); public abstra

deliciouscode.tistory.com

 

728x90
반응형

+ Recent posts