Fork me on GitHub

为了巩固所有学习到的继承和方法的覆写,下面通过具体实例来说明
要求定义一个数据操作类(Array类),可以定义整型数组的操作,由外部传入数组的大小,并且要求实现数组的保存以及数据的输出。随后在此基础上派生出两个子类
1.排序类:通过此类取得的数据可以进行排序
2.反转类:通过此类取得的数组数据要求采用倒序的方式输出
在进行开发的时候,一定不可能去考虑子类,如果考虑子类,代码就无法写出来

开发数组的父类,基础实现

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;
	}
}

public class testDemo{
	public static void main(String args[]){
		Array arr = new Array(3);
		System.out.println(arr.add(10));
		System.out.println(arr.add(20));
		System.out.println(arr.add(30));
		System.out.println(arr.add(100));
		System.out.println(arr.add(300));
		int [] temp = arr.getData();
		for (int i=0; i<temp.length;i++){
			System.out.println(temp[i]);
		}

	}
}


以上代码中,Array类没有提供无参构造,因为要传入一个数组大小,否则该类无法使用,并且Array规定要想增加数据使用add()方法,要想取出全部数据使用getData()方法

posted on 2019-11-20 20:39  anyux  阅读(122)  评论(0)    收藏  举报