继承案例分析(数组)


按照要求开发一个整型数组的操作类,数组的大小由外部决定,用户可以向数组中添加整型数据,也可以取得数组的全部数据。在基本操作类的基础上可以扩充两个子类:

  • 排序类:取得经过排序的数组的全部数据;
  • 反转类:取得经过反转的数组的全部数据。

开发过程:先开发数组的父类,再开发数组的两个子类(通过继承)。

程序示例:
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]+"、");
		}
	}
}
程序执行结果:truetruetruefalse
             151020

注意:通过实例化不同的类可以实现不同的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值