2017-09-23 2 views
-2

예 :수퍼 클래스의 배열 요소를 java의 서브 클래스 배열에 복사하는 방법은 무엇입니까?

class A 
{ 
    int array[] = {1,2,3,4,5} 
} 
class B extends A 
{ 
    int new_array[]; 
} 

지금 여기, 내가 클래스 A의 배열과 같은 요소를 포함해야 클래스 B에서 해당 new_array 원하는

참고 : 나는 복사 할 하지만, 이 경우 복사 된 배열에서 변경을 수행 할 때 변경 사항이 원래 배열에 반영되지 않아야합니다.

+0

'배열'을 상속하지 않는 이유는 무엇입니까? –

+0

배열을 상속하는 방법은 무엇입니까? – Jorvis

+0

다른 방법으로 상속받는 것과 같습니다. –

답변

0

공부하고 웹 서핑 후, 나는 마침내 루프를 사용하지 않고 배열을 복사하는 방법을 배웠 관리. 이 솔루션은 다음과 같다 :

class A 
{ 
    int array[] = {1, 2, 3, 4, 5}; 
} 
class B extends A 
{ 
    int copyArray[] = array.clone(); 
} 

내가이 클론() 메소드가 정말 도움이 발견!

0

이 시도 :

public class A { 
    int arrayA[] = {1,2,4,5,3}; //unsorted array 
} 

public class B extends A { 
    int arrayB[]; 

    public void exampleOfCopySortPrint() { 
    arrayB = Arrays.copyOf(arrayA, 5); // copy the values of arrayA into arrayB 
    // arrayB is now an entirely new array 

    Arrays.sort(arrayB); // this sorts the array from small to large 

    // print all elements in arrayB 
    for (int i : arrayB) { 
     System.out.println(i); // 1, 2, 3, 4, 5 (sorted) 
    } 
    } 
} 

또한 클래스 B의 필드를 추가

당신이 protected int array[];처럼 배열 필드에 수정 대중를 추가하거나 보호하지 않으면 필요가 없습니다 클래스 A에서 동일한 폴더/패키지에 2 개의 클래스를 배치해야합니다.

+0

알겠습니다. 당신 요점이 있습니다. – Jorvis

+0

이제 배열을 정렬하고 싶지만 주어진 배열에서 어떤 변경도 수행하고 싶지 않다고 한 가지 더 묻고 싶습니다. 그렇다면 어떻게해야할까요? – Jorvis

+0

@Jorvis 이렇게. 'Arrays'는 배열을 조작하는 정적 메소드의로드를 포함하고있는 특별한 util 클래스입니다. –

0

클래스 A는 {

int array[] = {1, 2, 3, 4, 5}; 

}

클래스 B는 {

int new_array[] = array; 

public void afterCopyArrayPrint() { 
    for (int i : new_array) { 
     System.out.println(i); 
    } 

} 

}

Public 클래스 ArrayTest을 {연장

public static void main(String[] args) { 
    B ob = new B(); 
    ob.afterCopyArrayPrint(); 
} 

}

+0

값 배열을 빈 배열에 할당하면 데이터가 새로운 배열 변수 –

+0

에 복사됩니다.하지만 솔루션에서 주어진 배열에 대해 정렬 작업을 수행하려고 할 때 주어진 배열을 변경하지 않고 그대로 유지하려는 경우 작업. – Jorvis

0
// TRY THIS 
public class Array 
{ 
    int[] a = {1, 2, 3, 4, 5}; 
    int length = a.length; 
} 

class Array2 extends Array 
{ 
    int[] newArray = new int[super.length]; 

    public static void main(String[] args) 
    { 
     Array obj = new Array(); 
     Array2 obj2 = new Array2(); 
     for (int i = 0; i < obj.length; i++) { 
      obj2.newArray[i] =obj.a[i]; 
      System.out.println(obj2.newArray[i]); 
     } 
    } 
} 
관련 문제