• 数组操作 (继承的理解)


     1 class Array{//定义一个专门进行数组的操作类
     2     private int data[];//定义一个整形数组,大小由外部决定
     3     private int foot=0;//进行数据的角标操作
     4     public Array(int len){//如果要想使用Array类必须设置数组大小
     5         if(len>0){
     6             this.data=new int[len];//开辟新数组
     7         }else{
     8             this.data=new int[1];//开辟1个空间
     9         }
    10     }
    11     //动态扩展。如果传入一个3,就加上
    12     public void inc(int num){
    13         int newData[]=new int[data.length+num];
    14         System.arraycopy(this.data,0,newData,0,this.data.length);
    15         this.data=newData;//改变原始数组指向
    16 
    17     }
    18     //该方法主要的功能是向数组里面的数据的保存
    19     public boolean add(int num){
    20         if(this.foot>=this.data.length){
    21             return false;
    22         }
    23         //先进行数组的数据保存,而后foot的内容加1 
    24         this.data[this.foot++]=num;
    25         return true;
    26     }
    27     public int[] getData(){
    28         return this.data;//返回数组内容 
    29     }
    30 }
    31 //这样可以获取父类的方法
    32 class sortArray extends Array{
    33     public sortArray(int num){
    34         super(num);//父类中支持数组创建了
    35     }
    36     //父类中的取得数据的方法名称很标准,但是功能不足,又希望继续使用这个方法名称,那么就需要对
    37     //方法进行扩充,扩充就是方法覆写,
    38     public int[] getData(){
    39         java.util.Arrays.sort(super.getData());
    40         return super.getData();//引用传递
    41     }
    42 }
    43 class ReverseArray extends Array{
    44     //必须知道数组大小
    45     public ReverseArray(int len){
    46         super(len);
    47     }
    48     public int[] getData(){
    49         int center=super.getData().length/2;
    50         int head=0;
    51         int tail=super.getData().length-1;
    52         for(int x=0;x<center;x++){
    53             int temp=super.getData()[head];
    54             super.getData()[head]=super.getData()[tail];
    55             super.getData()[tail]=temp;
    56             head++;
    57             tail--;
    58         }
    59         return super.getData();
    60     }
    61 }
    62 public class Newbegin{
    63     public static void main(String args[]) {
    64         ReverseArray arr=new ReverseArray(5);
    65         System.out.println(arr.add(3));
    66         System.out.println(arr.add(1));
    67         System.out.println(arr.add(2));
    68         System.out.println(arr.add(8));
    69         System.out.println(arr.add(6));
    70         arr.inc(3);//扩充数组
    71         System.out.println(arr.add(10));
    72         System.out.println(arr.add(20));
    73         System.out.println(arr.add(30));
    74 
    75         for(int x=0;x<arr.getData().length;x++){
    76             System.out.println(arr.getData()[x]);
    77         }
    78     }
    79 } 
  • 相关阅读:
    稀疏核机
    核方法
    变分法
    拉格朗日乘子
    序列数据
    连续隐含变量
    线性回归模型
    采样方法
    线性分类模型
    一些音乐下的评论
  • 原文地址:https://www.cnblogs.com/Tony98/p/10397942.html
Copyright © 2020-2023  润新知