按照要求开发一个整型数组的操作类,数组的大小由外部决定,用户可以向数组中添加整型数据,也可以取得数组的全部数据。在基本操作类的基础上可以扩充两个子类:
- 排序类:取得经过排序的数组的全部数据;
- 反转类:取得经过反转的数组的全部数据。
开发过程:先开发数组的父类,再开发数组的两个子类(通过继承)。
程序示例:
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{ //排序子类
public SortArray(int len){
super(len);
}
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-1; //尾部角标
for(int i=0;i<super.getData().length;i++){//反转
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[]){
Array arr = new Array(3);
System.out.println(arr.add(15)+"、");//保存成功
System.out.println(arr.add(10)+"、");
System.out.println(arr.add(20)+"、");
System.out.println(arr.add(25)+"、");//保存失败
int[] temp=arr.getData();
for(int i=0;i<temp.length;i++){
Syatem.out.println(temp[i]+"、");
}
}
}
程序执行结果:true、true、true、false
15、10、20
注意:通过实例化不同的类可以实现不同的功能。