面向对象的方法重写数组功能

用面向对象的方法把可以对数组实现的功能写在对应的方法里,以待什么时候需要就调用此方法来实现对应的功能。

方法类:ArrayUtil

 1 package com.sanguosha.exer;
 2 //一个数组的工具类
 3 public class ArrayUtil {//设置好需要调用的方法
 4         //设置求数组的最大值的方法
 5         public int getMax(int[] arr){//传进来一个数组参数,针对这个数组
 6             int max=arr[0];
 7             for(int i=0;i<arr.length;i++){
 8                 if(max<arr[i]){
 9                     max=arr[i];
10                 }
11             }
12             return max;
13         }
14         //设置求数组的最小值的方法
15         public int getMin(int[] arr){//传参
16             int min=arr[0];
17             for(int i=0;i<arr.length;i++){
18                 if(min>arr[i]){
19                     min=arr[i];
20                 }
21             }
22             return min;
23         }
24         //设置求数组的总和的方法
25         public int getSum(int[] arr){
26             int sum=0;
27             for(int i=0;i<arr.length;i++){
28                 sum+=arr[i];
29             }
30             return sum;
31         }
32         //求数组的平均值
33         public double getAgv(int[] arr){
34             int sum=0;
35             double agv=0;//局部变量必须初始化********注意
36             for(int i=0;i<arr.length;i++){
37                 sum+=arr[i];
38                 agv=sum/arr.length;
39             }
40             return agv;
41         }
42         //遍历数组元素
43         public void showArr(int[] arr){
44             for(int i=0;i<arr.length;i++){
45                 System.out.print(arr[i]+"  ");
46             }
47         }
48         //数组的复制
49         public int[] arrCopy(int[] arr){//设置返回值类型为一个数组
50             int[] fuzhi=new int[arr.length];
51             for(int i=0;i<arr.length;i++){
52                 fuzhi[i]=arr[i];
53                 //System.out.print(fuzhi[i]+"  ");
54             }
55             for(int i=0;i<fuzhi.length;i++){
56                 System.out.print(fuzhi[i]+"  ");//复制后遍历
57             }
58             return fuzhi;//返回一个数组
59         }
60         //数组的反转
61         public int[] fanZhuan(int[] arr){
62             for(int i=0;i<arr.length/2;i++){
63                 int temp=0;
64                 temp=arr[i];
65                 arr[i]=arr[arr.length-1-i];
66                 arr[arr.length-1-i]=temp;
67             }
68             return arr;
69         }
70         //数组的排序
71         public void sort(int[] arr){//实现排序
72             for(int i=0;i<arr.length-1;i++){//冒泡排序走arr.length-1趟
73                 for(int j=0;j<arr.length-1-i;j++){//每趟比较的次数
74                     //从头比较相邻的两个数,若前边的大,则交换
75                     if(arr[j]>arr[j+1]){
76                         int temp=0;
77                         temp=arr[j];
78                         arr[j]=arr[j+1];
79                         arr[j+1]=temp;
80                     }
81                 }
82             }
83         }
84     }

需要对数组进行操作时,调用以上方法

定义一个类TestArray:

 1 package com.sanguosha.exer;
 2
 3 public class TestArray {
 4     public static void main(String[] args) {
 5         int[] arr=new int[]{12,23,-45,3,47,-86,3,100,1,2};//声明一个数组arr
 6         ArrayUtil AU=new ArrayUtil();//用ArrayUtil类实例化一个对象
 7
 8         int zuidazhi=AU.getMax(arr);//调用写好的求最大值的getMax()方法
 9         System.out.println("arr数组的最大值是:"+zuidazhi);//打印最大值
10
11         int zuixiaozhi=AU.getMin(arr);//调用getMin()方法
12         System.out.println("arr数组的最小值是:"+zuixiaozhi);
13
14         int zonghe=AU.getSum(arr);//调用getSum()方法
15         System.out.println("arr数组的总和是:"+zonghe);
16
17         double pingjun=AU.getAgv(arr);//调用getAgv()
18         System.out.println("arr数组的的平均值是:"+pingjun);
19
20         System.out.println("遍历arr数组:");
21         AU.showArr(arr);//遍历,调用showArr()
22
23         System.out.println("\n复制出的数组是:");
24         AU.arrCopy(arr);//调用复制方法
25
26         System.out.println("\n数组反转后:");
27         AU.fanZhuan(arr);//实现数组的反转
28         AU.showArr(arr);//反转后再次打印arr数组
29
30         System.out.println("\n排序后的数组:");
31         AU.sort(arr);//调用排序方法sort()
32         AU.showArr(arr);//排序后调用遍历方法遍历
33     }
34 }

运行结果:

时间: 2024-08-11 03:31:07

面向对象的方法重写数组功能的相关文章

C#面向对象的方法写数组的功能

上一篇文章用Java方法写出了可以对数组执行的功能,然后在用实例化后的对象调用这些方法来实现这些功能: 这篇随笔改用C#语言实现同样的功能 方法类:Array 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApplication1 8 { 9 clas

c#基础学习(0702)之面向对象和方法重写概述

面向对象编程(OOP==>Object-Oriented Programming) OOA:面向对象分析 OOD:面向对象设计 OOAD:面向对象分析与设计 什么是面向对象?一种分析问题的方式(增强了程序的可扩展性) 面向对象的三大特性:封装.继承.多态 什么是类?什么是对象?类和对象的区别? *类是模具,创建对象的模具,抽象的 类是一种数据类型,用户自定义的数据类型 类组成:字段.属性.方法.构造函数等 *对象是具体的,是类的具体实例.对象具有属性(特征)和方法(行为) *类中包含了数据(用字

面向过程和面向对象的区别,方法重载和方法重写的区别

先有面向过程,而后退出面向对象 面向过程和面向对象两者都是软件开发思想,先有面向过程,后有面向对象.在大型项目中,针对面向过程的不足推出了面向对象开发思想. 打个比方 蒋介石和毛主席分别是面向过程和面向对象的杰出代表,这样充分说明,在解决复制问题时,面向对象有更大的优越性. 面向过程是蛋炒饭,面向对象是盖浇饭.盖浇饭的好处就是"菜""饭"分离,从而提高了制作盖浇饭的灵活性.饭不满意就换饭,菜不满意换菜.用软件工程的专业术语就是"可维护性"比较好,

面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字

面向对象设计的过程:     发现类-发现类的属性-发现类的方法-优化设计: 封装: private类型的,只可以在本类中使用,当其他类调用此类时,不可使用,因此可以设置setget方法,如下所示: 构造------------------------ 默认有无参构造,若设置了有参构造,则就没有默认的无参构造了,需要自己再添加一个 方法重载------------------- 方法名相同,参数列表不同(类型,数量,顺序不同,与参数名无关): 与返回值,访问修饰符无关 面向对象(OO)的优点--

疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同时这这里我们需要注意以下两点:  A.方法重载与返回值类型没有任何关系;  B.方法重载与是否有static修饰没有任何关系. 那我们如何才能确定到底调用的哪个方法呢?  A.主调者:明确是谁在调用这个方法,是类还是对象  B.方法名和形参:确定调用哪个方法(由方法名和形参共同决定) 例1: 1 p

方法重写与方法重载

继承和多态都是面向对象程序设计的特点.使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法.由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题.方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆,掌握重写和重载的区别对学会使用多态的方式编写程序.提高程序的可维护性奠定了基础. 一.方法重写(0veriding)如何定义重写:在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类

JAVA SE中方法重载和方法重写及数据库中子程序的重载

首先方法重写和方法重载是建立在Java的面向对象的继承和多态的特性基础上而出现的.至于面向对象的继承和多态的特性我就不在这里多说了.继承是指在一个父类的基础再创建一个子类,这样子类就拥有了父类的非私有的特性,同时子类还可以扩展自己的特性,这样就引出了方法重写和方法重载! 一.方法重写(Override)         在Java中如何来定义重写:Java程序中类的继承特性可以产生一个子类,子类继承父类就拥有了父类的非私有的属性(方法和变量),在子类中可以增加自己的属性(方法和变量),同时也可以

[.net 面向对象编程基础] (17) 数组与集合

[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总是举的是具体的实例以加深理解. 本节内容相当具体,学起来也相当轻松. 1.数组 1.1 什么是数组? 数组是一种数据结构,包含同一个类型的多个元素. 1.2数组的初始化 string[] mystringArray; 类型+方框号 数组名 1.3数组初始化 我们知道数组是引用类型,所以需要给他分配堆

【java】Java的继承,方法重写,访问权限

继承 **首先面向对象的三大特性: 1. 封装 2. 继承 3. 多态** 语法 class Subclass extends Superclass{ } 作用 继承的出现提高了代码的复用性. 继承的出现让类与类之间产生了关系,提供了多态的前提. 不要仅为了获取其他类中某个功能而去继承 例子 class Person { String name; int age; } /*继承与Person类*/ class Student extends Person { int weight; } Stud