Untitled

package myspace4;

public class MathArrayUtilsMain {

	//조건1 mathArrayUtils 인스턴스 생성 막기(-> 생성자를 private으로 막기)
	//MathArrayUtils mathArrayUtils = new MathArrayUtils();
	
		public static void main(String[] args) {
			int[] values = { 1, 2, 3, 4, 5 };
			System.out.println("sum=" + MathArrayUtils.sum(values));
			System.out.println("average=" + MathArrayUtils.average(values));
			System.out.println("min=" + MathArrayUtils.min(values));
			System.out.println("max=" + MathArrayUtils.max(values));

	}

}
package myspace4;

public class MathArrayUtils {

		private MathArrayUtils() {
			// 인스턴스 생성을 막는다
		}

		static int sum(int[] values) {
			int total = 0;
			for (int i : values) {
				total += i;
			}
			return total;
		}

	static double average(int[] values) {
		// 클래스에서 메인 함수에 있는 값을 사용하는 것이 아니라, 메인 함수에서 클래스의 메서드를 호출할 때 값을 전달합니다.
		return (double) sum(values) / values.length; // int,int이지만 평균이라 소수점 나올수 있어 double로 바꿔줌
	} //궁금증1

	static int min(int[] values) {
		int minvalue = values[0];
		for (int i : values) {
			if (i < minvalue) {
				minvalue = i;
			}
		}
		return minvalue;
	}

	static int max(int[] values) {
		int maxvalue = values[0];
		for (int i : values) {
			if (i > maxvalue) {
				maxvalue = i;
			}
		}
		return maxvalue;

	}
}

궁금증 1)

이 코드에서는 왜 같은클래스의 다른메서드가 사용한 값을 바로 다른메서드에서 사용할 수 있을까?

sum=15 average=3.0 min=1 max=5

Untitled

Untitled