定义一个整型数组类,要求包含构造方法,增加数据以及输出数据成员方法,增加数据以及输出数据成员方法,并利用数组实现动态内存分配,在此基础上定义出以下子类:

  • 排序类:实现数组排序
  • 反转类:实现数组倒序存储
class Array {
    private int temp[]; // 整型数组
    private int foot;   // 定义新插入数据位置
    public Array (int len){	// 构造函数,开辟数据空间
        if(len > 0){
            this.temp = new int[len];
        }else{
            this.temp = new int[1];  // 数组空间至少是1
        }
    }

    public boolean add(int i){  // 添加元素
        if(this.foot < this.temp.length){		// 这里foot默认值是 0
            temp[foot] = i;
            this.foot ++;   // 修改脚标
            return true;
        }else{
            return false;
        }
    }

    public int[] getArray (){
        return this.temp;
    }
}

class ArraySort extends Array {		// 排序类
    public ArraySort(int len){
        super(len);
    }

    public int[] getArray (){    // 覆写方法
        java.util.Arrays.sort(super.getArray ()); // 排序操作
        return super.getArray ();
    }

}

class ArrayReverse extends Array {		// 反转数组类
    public ArrayReverse(int len){
        super(len);
    }
    public int[] getArray (){
        int t[] = new int[super.getArray ().length];
        int count = t.length - 1;
        for(int i=0;i<t.length;i++){
            t[count] = super.getArray ()[i];
            count -- ;
        }
        return t;
    }

}

public class ArrayDemo {
    public static void main(String[] args) {
        ArrayReverse ar = new ArrayReverse(5);  // 实例化大小为5的反转类对象
        System.out.print(ar.add(23) + \"\\t\");
        System.out.print(ar.add(21) + \"\\t\");
        System.out.print(ar.add(2) + \"\\t\");
        System.out.print(ar.add(42) + \"\\t\");
        System.out.print(ar.add(5) + \"\\t\");
        System.out.println(ar.getArray ());
        print(ar.getArray ());

        System.out.println();
        // 排序输出
        ArraySort as = new ArraySort(5);
        System.out.print(as.add(23) + \"\\t\");
        System.out.print(as.add(21) + \"\\t\");
        System.out.print(as.add(2) + \"\\t\");
        System.out.print(as.add(42) + \"\\t\");
        System.out.print(as.add(5) + \"\\t\");
        System.out.println(as.getArray ());
        print(as.getArray ());
    }
    public static void print(int t[]){
        for(int i=0;i<t.length;i++){
            System.out.print(t[i] + \"、\");
        }
    }

}

// 输出结果
true	true	true	true	true	[I@1540e19d
54222123true	true	true	true	true	[I@677327b6
25212342
收藏 打印