1. 程式人生 > >數組操作 (繼承的理解)

數組操作 (繼承的理解)

繼續 rgs lean span out mil println class per

 1 class Array{//定義一個專門進行數組的操作類
 2     private int data[];//定義一個整形數組,大小由外部決定
 3     private int foot=0;//進行數據的角標操作
 4     public Array(int len){//如果要想使用Array類必須設置數組大小
 5         if(len>0){
 6             this.data=new int[len];//開辟新數組
 7         }else{
 8             this.data=new int[1];//開辟1個空間
 9         }
10 } 11 //動態擴展。如果傳入一個3,就加上 12 public void inc(int num){ 13 int newData[]=new int[data.length+num]; 14 System.arraycopy(this.data,0,newData,0,this.data.length); 15 this.data=newData;//改變原始數組指向 16 17 } 18 //該方法主要的功能是向數組裏面的數據的保存 19 public boolean add(int num){ 20 if
(this.foot>=this.data.length){ 21 return false; 22 } 23 //先進行數組的數據保存,而後foot的內容加1 24 this.data[this.foot++]=num; 25 return true; 26 } 27 public int[] getData(){ 28 return this.data;//返回數組內容 29 } 30 } 31 //這樣可以獲取父類的方法 32 class sortArray extends
Array{ 33 public sortArray(int num){ 34 super(num);//父類中支持數組創建了 35 } 36 //父類中的取得數據的方法名稱很標準,但是功能不足,又希望繼續使用這個方法名稱,那麽就需要對 37 //方法進行擴充,擴充就是方法覆寫, 38 public int[] getData(){ 39 java.util.Arrays.sort(super.getData()); 40 return super.getData();//引用傳遞 41 } 42 } 43 class ReverseArray extends Array{ 44 //必須知道數組大小 45 public ReverseArray(int len){ 46 super(len); 47 } 48 public int[] getData(){ 49 int center=super.getData().length/2; 50 int head=0; 51 int tail=super.getData().length-1; 52 for(int x=0;x<center;x++){ 53 int temp=super.getData()[head]; 54 super.getData()[head]=super.getData()[tail]; 55 super.getData()[tail]=temp; 56 head++; 57 tail--; 58 } 59 return super.getData(); 60 } 61 } 62 public class Newbegin{ 63 public static void main(String args[]) { 64 ReverseArray arr=new ReverseArray(5); 65 System.out.println(arr.add(3)); 66 System.out.println(arr.add(1)); 67 System.out.println(arr.add(2)); 68 System.out.println(arr.add(8)); 69 System.out.println(arr.add(6)); 70 arr.inc(3);//擴充數組 71 System.out.println(arr.add(10)); 72 System.out.println(arr.add(20)); 73 System.out.println(arr.add(30)); 74 75 for(int x=0;x<arr.getData().length;x++){ 76 System.out.println(arr.getData()[x]); 77 } 78 } 79 }

數組操作 (繼承的理解)