数组相关类 假写数组

来源:互联网 发布:mac安装axure出错 编辑:程序博客网 时间:2024/05/29 03:07
class Array {
private int data [] ;// 定义一个数组
private int foot ;// 表示数组的操作下标
public Array(int len) {// 构造本类对象时需要设置大小
if (len > 0) {// 至少有元素
this.data = new int [len] ;// 开辟一个数组
} else {
this.data = new int [1] ;// 维持一个元素的大小
}
}
public boolean add(int num) {
if (this.foot < this.data.length) {// 有空间保存
this.data[this.foot ++] = num ;// 保存数据
return true ; // 保存成功
}
return false ;// 保存失败
}
public int [] getData() {// 取得所有的数组内容
return this.data ;
}
}
// 定义一个排序数组的子类
class SortArray extends Array {
// Array类里面现在没有无参构造方法
public SortArray(int len) {
// 这样父类中的data数组就可以初始化
super(len) ; // 明确的调用父类的有参构造
}
// 因为父类中getData()方法不够当前类使用的,
//但是又需要保留这个方法名称
// 使用覆写的概念来将此方法的功能扩充
public int [] getData() {
java.util.Arrays.sort(super.getData()) ;// 排序
return super.getData() ;
}
}
class ReverseArray extends Array {
public ReverseArray(int len) {
super(len) ; //调用父类有参构造
}
public int [] getData() {// 需要得到的是反转数据
int center = super.getData().length / 2 ;
int head = 0 ;
int tail = super.getData().length - 1 ;
for (int x = 0 ; x < center ; x ++) {
int temp = super.getData()[head] ;
super.getData()[head] = super.getData()[tail] ;
super.getData()[tail] = temp ;
head ++ ;
tail -- ;
}
return super.getData() ;
}
}
0 0