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


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(...)
         }
    }

  • 2017년 11월 29일에 작성됨

조회수 91


1 답변


좋아요
0
싫어요
채택취소하기

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

  • 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());
  • 2017년 11월 29일에 작성됨
    Software Developer

  • 와 1시간동안 해봐도 안됬는데; 바로되네요...감사합니다    최정인   2017.11.29 13:48     
  • ArrayUtils 클래스에 배열 초기화 없이도 merge 기능을 할 수 있도록 기본생성자를 추가하면 더 좋을 것 같아요.    김선우   2017.11.29 14:49     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close