Demo(动态数组的添加输出子类继承的排序反转)

来源:互联网 发布:关于走心的文案 知乎 编辑:程序博客网 时间:2024/06/06 02:29
 /*1.定义一个数组(整型),要求实现数据的添加,数组内容的输出,数组大小的动态输出2.写一个子类继承,对实现输出的数组实现进行排序3.写一个子类继承,对实现输出的数组进行反转 */class Array{private int [] data; private int foot=0;//数组下标//数组开辟控件public Array(int len){if(len>0){this.data=new int[len];//开辟数组}elsethis.data=new int[1];}// 该方法是进行数组数据的插入操作函数public boolean add(int num){if(this.foot>=this.data.length){return false;}this.data[this.foot++]=num;return true;}// 取得数组数据public int[]getData(){return this.data;}//动态扩展数组public void inc(int num){int newData[]=new int[num+this.data.length];System.arraycopy(this.data,0,newData,0,this.data.length);this.data=newData;// 改变原始数组指向} }//子类继承处理字符串排序问题class SortArray extends Array{public SortArray(int num){super(num); //父类没有无参构造方法,这里必须调用父类的 构造方法}// 取得数组数据,此方法为父类方法,对其进行覆写public int[] getData(){for(int x=0;x<super.getData().length-1;x++){for(int y=0;y<super.getData().length-1-x;y++){if(super.getData()[y]>super.getData()[y+1]){int temp=super.getData()[y];super.getData()[y]=super.getData()[y+1];super.getData()[y+1]=temp;}}}//System.util.Arrays.sort(super.getData());return super.getData();}}//子类继承字符串反转class ReverseArray extends Array{public ReverseArray(int num){super(num);}public int[] getData(){int head =0;int tail=super.getData().length-1;int mid=super.getData().length/2;for (int x=0;x<mid ;x++ ){int temp=super.getData()[head];super.getData()[head]=super.getData()[tail];super.getData()[tail]=temp;head++;tail--;}return super.getData();}}public class TestDemo{public static void main(String args[]){SortArray arr=new SortArray(5);//ReverseArray=arr=new ReverseArray(5);System.out.println(arr.add(1));System.out.println(arr.add(10));System.out.println(arr.add(21));System.out.println(arr.add(23));System.out.println(arr.add(4));arr.inc(3);//扩充数据System.out.println(arr.add(42));System.out.println(arr.add(23));System.out.println(arr.add(12));//用于接受数据int result[]=arr.getData();for(int x=0;x<result.length;x++){System.out.print(result[x]+"、");}}}


原创粉丝点击