java 继承、方法复写实战 ----数组操作

/* 1).  父类的设计很重要,父类中的方法必须要有意义
2). 子类定义的时候就应该已经可以明确该类的功能是什么
3). 如果子类在进行操作中发现父类的方法不好用了,优先考虑覆写方法,而不是重新创建一个方法
*/
public
class LianXi{ public static void main(String[]args){ SortArray arr=new SortArray(5); System.out.println(arr.add(4311)); System.out.println(arr.add(4598)); System.out.println(arr.add(0422)); System.out.println(arr.add(8543)); System.out.println(arr.add(7711)); arr.inc(3); System.out.println(arr.add(9544)); System.out.println(arr.add(3868)); System.out.println(arr.add(7007));
//int[] temp =arr.getData(); 调用反转方法时需要注意重复调用
for(int x=0;x<arr.getData().length;x++){ System.out.print(arr.getData()[x]+"/"); } } } class Array{ private int [] data; private int foot; public Array(int len){ //通过外部传入数组长度 if(len<=0){ this.data=new int[1]; }else{ this.data=new int[len]; } } 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 void inc(int size){// 修改数组长度 if(size>0){ int[] newData=new int[this.data.length+size]; System.arraycopy(this.data,0,newData,0,this.data.length); this.data=newData; } } } class SortArray extends Array{//排序子类 public SortArray(int len) { super(len); // TODO Auto-generated constructor stub } 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(); } }
原文地址:https://www.cnblogs.com/wangyinxu/p/6292504.html