我有一個ArrayClass
和mergeSortArray
擴展它。並且mergeSortArray
包含mergeSort()
方法。然而,因爲我用super
來調用超類的構造函數,所以我不知道如何引用mergeSortArray(子類對象/數組),並將其作爲mergeSort
方法中的參數傳遞。事實上,這是否可行?我知道我可以以非OOP的方式做到這一點。不過,我很想知道如何以OOP的方式做到這一點。Java OOP:引用子類對象
如果我說的不正確,請糾正我,因爲我是Java新手,我想了解更多信息。
// ArrayClass Object
import java.util.*;
import java.io.*;
import java.math.*;
public class ArrayClass{
public int[] input_array;
public int nElems;
public ArrayClass(int max){
input_array = new int [max];
nElems = 0;
}
public void insert(int value){
input_array[nElems++] = value;
}
public void display(){
for(int j = 0; j < nElems; j++){
System.out.print(input_array[j] + " ");
}
System.out.println("");
}
}
import java.io.*;
import java.util.*;
import java.math.*;
class mergeSortArray extends ArrayClass{
public mergeSortArray(int max){
super(max);
}
public void methodOne(){
int[] output_array = new int[super.nElems];
mergeSort(// ************* // ,output_array,0, super.nElems -1);
}
................
}
我不知道我應該把更換******
這樣我可以通過mergeSortArray
作爲參數到mergeSort
方法。
@Elliott_Frisch如果變量'在ArrayClass protected',子類可以訪問他們(因爲他們不是私人的)。在這種情況下,爲什麼我仍然要指定'public int size()'和'public int [] getInputArray()'實例方法? – mynameisJEFF 2014-12-02 01:10:30
這些是訪問器方法。一般都希望公開這些字段(就像他們在你的問題中一樣)。 – 2014-12-02 01:53:28
但如果這些字段是受保護的,我可以在沒有訪問器方法的情況下訪問它們。那麼爲什麼需要訪問器方法? – mynameisJEFF 2014-12-02 02:10:51