-
JAVA - 자바 메모리 구조와 static - 연습문제JAVA 2024. 1. 6. 12:17728x90
문제. 1 - 구매한 자동차 수
다음 코드를 참고해서 생성한 차량 수를 출력하는 프로그램을 작성하기.
public class CarMain { public static void main(String[] args) { Car car1 = new Car("K3"); Car car2 = new Car("G80"); Car car3 = new Car("Model Y"); Car.showTotalCars(); } }
여기선 showTotalCars() 메서드에 구매한 차량수를 출력해주게 코드를 짜면 된다.
public class Car { private String name; private static int totalCars; public Car(String name) { this.name = name; totalCars++; System.out.println("차량 구입, 이름 : " + name); } public static void showTotalCars() { System.out.println("구매한 차량 수 : " + totalCars); } }
문제. 2 - 수학 유틸리티 클래스
다음 기능을 제공하는 배열용 수학 유틸리티 클래스(MathArrayUtils)를 만들기.
- sum(int[] array) : 배열의 모든 요소를 더하여 합계를 반환
- average(int[] array) : 배열의 모든 요소의 평균값을 계산
- min(int[] array) : 배열의 최고값 구하기
- max(int[] array) : 배열의 최대값 구하기
- MathArrayUtils은 객체를 생성하지 않고 사용해야 한다. 누군가 실수로 MathArrayUtils의 인스턴스를 생성하지 못하게 막아야함.
- 실행 코드에 import static을 사용하기.
public class MathArrayUtils { private MathArrayUtils() { // private으로 인스턴스 만들어지는 것을 막아버리기. } public static int sum(int[] array) { int sum = 0; for (int i : array) { sum += i; } return sum; } public static double average(int[] array) { return (double) sum(array) / array.length; } public static int min(int[] array) { int min = array[0]; for (int i : array) { if (min >= i) { min = i; } } return min; } public static int max(int[] array) { int max = array[0]; for (int i : array) { if (max <= i) { max = i; } } return max; } }
import static static2.ex.MathArrayUtils.*; public class MathArrayUtilsMain { public static void main(String[] args) { int[] values = {1, 2, 3, 4, 5}; System.out.println("MathArrayUtils.sum(values) = " + sum(values)); System.out.println("MathArrayUtils.average() = " + average(values)); System.out.println("MathArrayUtils.min(values) = " + min(values)); System.out.println("MathArrayUtils.max(values) = " + max(values)); } }
'JAVA' 카테고리의 다른 글
JAVA - 상속 (2) 2024.01.09 JAVA - final (1) 2024.01.08 JAVA - 자바 메모리 구조와 static (1) 2024.01.06 JAVA - 접근제어자 연습문제 (1) 2024.01.04 JAVA - 접근 제어자 (1) 2024.01.04