
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

