한 클래스에서 코딩한 메서드를 다른 클래스에서 출력하고 싶으면 어떡해 해야 하나요?

조회수 4952회

ArrayUtils 라는 클래스가 있고 ArrayUtilsTester라는 클래스가 있는데요. ArrayUtils 클래스에는 메서드들을 코딩하고 그 메서드들을 ArrayUtilsTester에서 SOP 이용해서 출력해야하는데 다른건 다 했는데 두 배열을 병합해서 새로운 어레이를 만들어야하는 마지막 파트에서 막히네요...기존처럼 출력하려니 안되서요...그리고 저 병합 메서드가 맞는지도 모르겠네요 하도 이리저리 바꿔대서... 코드가 너무 길어질까봐 (이미 길지만) 제가 이미 성공적으로 출력한것들은 뺏는데요 원래는 각 배열의 최솟값, 최대값, 특정 숫자 등등까지 구해야하는거라...배열들의 사이즈와 그 사이즈에 따라 출력되는 값들 모두 0-100 사이의 랜덤한 숫자들이어야합니다.


    import java.util.Random;

    public class ArrayUtils 
    {
    private int[] arr;

    public ArrayUtils(int sizeOfArray)
    {
        arr = new int [sizeOfArray];
        Random random = new Random();

        for (sizeOfArray = 0; sizeOfArray < arr.length; sizeOfArray++)
        {
            arr [sizeOfArray] = random.nextInt(101);
        }

    }
    public int[] mergeArrays(int[] arr1, int[] arr2) 
    {
        int length = arr1.length+arr2.length;  
        int [] arrSum = new int[length];

        for(int i=0; i < length; i++) 
        {
            if(i < arr1.length) 
            {
                arrSum[i] = arr1[i];   
            }
            else 
            {
                arrSum[i] = arr2[i - arr1.length];
            }
        }
        return arrSum;  
    } 
} 

    import java.util.Arrays;
    import java.util.Random;

    public class ArrayUtilsTester
    {
        public static void main(String[] args)
        {
            Random random = new Random();
            int sizeOfArray = random.nextInt(101);

            ArrayUtils arr1 = new ArrayUtils(sizeOfArray);
            ArrayUtils arr2 = new ArrayUtils(sizeOfArray);
            ArrayUtils arr3 = new ArrayUtils(sizeOfArray);  

            System.out.println(...)
         }
    }

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 간단하게 두 가지 방법을 생각해볼 수 있으며, 결과는 의도했던대로 나올 것 같아요.

    • arr 변수의 접근 제어자를 private -> public
    int[] arrSum = arr1.mergeArrays(arr2.arr, arr3.arr);
    
    • 메서드(getter 와 같은)를 통해 arr 변수에 접근
    public int[] getArr() {
        return arr;
    }
    
    
    int[] arrSum = arr.mergeArrays(arr2.getArr(), arr3.getArr());
    
    • 와 1시간동안 해봐도 안됬는데; 바로되네요...감사합니다 알 수 없는 사용자 2017.11.29 13:48
    • ArrayUtils 클래스에 배열 초기화 없이도 merge 기능을 할 수 있도록 기본생성자를 추가하면 더 좋을 것 같아요. 김선우 2017.11.29 14:49

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)