zoukankan      html  css  js  c++  java
  • JAVA继承与覆写

    实例:数组操作

    首先是开发一个整型数组父类,要求从外部控制数组长度,并实现保存数据以及输出。然后子类中实现排序和反转。

    基础父类代码如下:

     1 class Array {
     2     private int data [] ;
     3     private int foot ;
     4     public Array(int len ) {
     5         if (len > 0 ) {   //至少有元素
     6             this.data = new int [len] ;
     7         } else {
     8             this.data = new int [1] ;
     9         }
    10     }
    11     public boolean add(int num ){
    12         if (this.foot < this.data.length){  //有空间
    13             this.data[this.foot ++] = num ; //保存数据
    14             return true ;    //保存成功
    15         }
    16         return false ;       //保存失败
    17     }
    18     public int [] getData(){
    19         return this.data ;
    20     }
    21 }
    22 public class Test1{
    23     public static void main (String args[]){
    24         Array arr = new Array(3);
    25         System.out.println(arr.add(10)) ;
    26         System.out.println(arr.add(20)) ;
    27         System.out.println(arr.add(30)) ;
    28         System.out.println(arr.add(100)) ;
    29         System.out.println(arr.add(200)) ;
    30         int [] temp = arr.getData() ;
    31         for (int x = 0 ; x < temp.length ; x++ ){
    32             System.out.println(temp[x]);
    33         }
    34     }
    35 }

     创建第一个子类,排序

     1 class Array {
     2     private int data [] ;
     3     private int foot ;
     4     public Array(int len ) {
     5         if (len > 0 ) {   //至少有元素
     6             this.data = new int [len] ;
     7         } else {
     8             this.data = new int [1] ;
     9         }
    10     }
    11     public boolean add(int num ){
    12         if (this.foot < this.data.length){  //有空间
    13             this.data[this.foot ++] = num ; //保存数据
    14             return true ;    //保存成功
    15         }
    16         return false ;       //保存失败
    17     }
    18     public int [] getData(){
    19         return this.data ;
    20     }
    21 }
    22 //定义一个排序数组的子类
    23 class SortArray extends Array {
    24     public SortArray(int len) {
    25         super(len);
    26     }
    27     //因为父类中getData()不能排序,故此处采用覆写进行扩展
    28     public int [] getData(){
    29         java.util.Arrays.sort(super.getData()) ;
    30         return super.getData() ;
    31     }
    32 }
    33 public class Test1{
    34     public static void main (String args[]){
    35         SortArray arr = new SortArray(3);
    36         System.out.println(arr.add(56)) ;
    37         System.out.println(arr.add(77)) ;
    38         System.out.println(arr.add(29)) ;
    39         System.out.println(arr.add(100)) ;
    40         System.out.println(arr.add(200)) ;
    41         int [] temp = arr.getData() ;
    42         for (int x = 0 ; x < temp.length ; x++ ){
    43             System.out.println(temp[x]);
    44         }
    45     }
    46 }

    创建第二个子类,反转

     1 class Array {
     2     private int data [] ;
     3     private int foot ;
     4     public Array(int len ) {
     5         if (len > 0 ) {   //至少有元素
     6             this.data = new int [len] ;
     7         } else {
     8             this.data = new int [1] ;
     9         }
    10     }
    11     public boolean add(int num ){
    12         if (this.foot < this.data.length){  //有空间
    13             this.data[this.foot ++] = num ; //保存数据
    14             return true ;    //保存成功
    15         }
    16         return false ;       //保存失败
    17     }
    18     public int [] getData(){
    19         return this.data ;
    20     }
    21 }
    22 //定义一个排序数组的子类
    23 class SortArray extends Array {
    24     public SortArray(int len) {
    25         super(len);
    26     }
    27     //因为父类中getData()不能排序,故此处采用覆写进行扩展
    28     public int [] getData(){
    29         java.util.Arrays.sort(super.getData()) ;
    30         return super.getData() ;
    31     }
    32 }
    33 //定义一个反转数组的子类
    34 class ReverseArray extends Array{
    35     public ReverseArray(int len) {
    36         super(len );
    37     }
    38     public int [] getData() {
    39         int center = super.getData().length / 2 ;
    40         int head = 0 ;
    41         int tail = super.getData().length - 1 ;
    42         for (int x =  0; x < center ; x ++ ){
    43             int temp = super.getData()[head] ;
    44             super.getData()[head] = super.getData()[tail] ;
    45             super.getData()[tail] = temp ;
    46             head ++ ;
    47             tail -- ;
    48         }
    49         return super.getData() ;
    50     }
    51 }
    52 public class Test1{
    53     public static void main (String args[]){
    54         ReverseArray arr = new ReverseArray(3);
    55         System.out.println(arr.add(56)) ;
    56         System.out.println(arr.add(77)) ;
    57         System.out.println(arr.add(29)) ;
    58         System.out.println(arr.add(100)) ;
    59         System.out.println(arr.add(200)) ;
    60         int [] temp = arr.getData() ;
    61         for (int x = 0 ; x < temp.length ; x++ ){
    62             System.out.println(temp[x]);
    63         }
    64     }
    65 }

  • 相关阅读:
    公式在Excel报表中的应用
    Excel生成报表之解决方案设置单个单元格格式
    Excel生成报表之解决方案开盘盘高盘低收盘图(附源码)
    Excel生成报表之解决方案设置多个单元格区域的格式
    Excel生成报表之解决方案簇状圆锥图
    Excel生成报表之解决方案设置整行整列(附源码)
    已发布Acey.ExcelX3.4英文和中文版
    Excel生成报表之解决方案气泡图
    Excel生成报表之解决方案单元格富文本
    Excel生成报表之解决方案单元格添加批注
  • 原文地址:https://www.cnblogs.com/jl29233zx/p/5647787.html
Copyright © 2011-2022 走看看