java面向对象编程的进阶玩法,对于开发自己的项目会有帮助,通俗易懂,感谢大佬进来指点一下我(内容还没写完)

Java面向对象编程(进阶玩法)

一、定义工具类

1)在实际开发中,经常会遇到一些数组使用的工具类,以下我将编写一个数组的工具类:ArraysUtils

因为在数组对象直接输出的时候是输出对象的地址的,而项目中很多地方都需要返回数组的内容,所以我们需要去定义一个工具类,去返回我们想要的结果

1. 首先我们创建一个测试类:
public class Test {
    public static void main(String[] args) {
        //在这里我们定义了一个有参的数组
        int[] arr = {10, 20, 30,40,50};
        //使用ArrayUtils工具类的toString方法去输出数组
        System.out.println(ArrayUtils.toString(arr));
        //使用ArrayUtils工具类的getAverage方法获取这个数组的平均值
        System.out.println(ArrayUtils.getAverage(arr));
        //在这里我们定义了数组值为null的arr1
        int[] arr1 = null;
        //使用ArrayUtils工具类的toString方法去输出null数组
        System.out.println(ArrayUtils.toString(arr1));
        //使用ArrayUtils工具类的getAverage方法是否能够处理null值
        System.out.println(ArrayUtils.getAverage(arr1));
        //在这里我们定义了一个无参的数组
        int[] arr2 = {};
        //使用ArrayUtils工具类的toString方法去输出无参数组
        System.out.println(ArrayUtils.toString(arr2));
        //使用ArrayUtils工具类的getAverage方法处理一个无参数组
        System.out.println(ArrayUtils.getAverage(arr2));
    }


}

现在我们还没有写ArrayUtils工具类,所以会报错,如下:

请添加图片描述

2. 现在我们需要创建一个ArrayUtils工具类:

选中ArrayUtils区域使用快捷键Alt+Enter创建一个ArrayUtils工具类

请添加图片描述

可以看见我们Test.java测试类还是报错:

这时候我们需要去实现toString和getAverage类

请添加图片描述

先确定一个目标,我现在想要这个测试类输出的内容是:
请添加图片描述

2.1 首先我们定义一个无参构造器(把它私有化):

构造器的设置是让实例化的对象有默认的参数,这里我们定义的是无参构造

private ArrayUtils() {}

请添加图片描述

2.2 然后定义一个String类型静态方法去重写我们的toString方法,返回我们的数组,代码及解释如下:

静态方法(static method)是属于类本身而不是类的实例的方法。这意味着静态方法可以在没有创建类的对象实例的情况下被调用

//注意:这是一个方法,将这个方法添加到你的ArrayUtils工具类中
//括号里是获取一个名为arr(使用这个方法可以不用这个名,但需要同样的类型)的int[]数组类型。
public static String toString(int[] arr) {
    //如果arr为null,则返回一个null
        if (arr == null) {
            return null;
        }
    //如果arr数组里没有内容,则返回字符串[]
        if (arr.length == 0) {
            return "[]";
        }
    //否则,使用java自有的StringBuilder用来创建可变的字符串,与 String 类不同,StringBuilder 允许你在创建后修改字符串
        StringBuilder sb = new StringBuilder();
    //向 StringBuilder 添加了一个开方括号 [,标志着数组表示的开始。
        sb.append("[");
    //使用 for 循环遍历数组 arr 的每个元素。
        for (int i = 0; i < arr.length; i++) {
            //将当前数组元素添加到 StringBuilder。
            sb.append(arr[i]);
            //检查当前元素是否不是数组中的最后一个。
            if (i < arr.length - 1) {
                //如果不是最后一个元素,添加一个逗号和空格以进行分隔。
                sb.append(", ");
            }
        }
    //循环之后,添加了一个闭方括号 ],标志着数组表示的结束。
        sb.append("]");
    //最后,调用 sb.toString() 将 StringBuilder 的内容转换成 String,并从方法中返回这个字符串。
        return sb.toString();
    }

如图:

请添加图片描述

可以看见toString方法被重写了参数类型现在可以用了:

请添加图片描述

2.3 继续定义一个double类型的getAverage静态方法,去返回我们数组的平均值,代码及解释如下:
//方法需要实现:计算并返回一个整数数组的平均值
//公开的静态方法 getAverage,它接受一个整数数组 arr 作为参数,并返回一个 double 类型的值。
public static double getAverage(int[] arr) {
    //在计算平均值之前,检查传入的数组是否为 null 或长度为零,如果是则返回0,因为在这种情况下无法计算平均值。
        if (arr == null || arr.length == 0) {
            return 0;
        }
    //这个变量用于存储数组中所有值的总和。
        double sum = 0;
    // 循环遍历数组 arr 中的每个元素到value变量中,每次循环都将 value 的值加到 sum 上
        for (int value : arr) {
            sum += value;
        }
    //在所有元素被累加到 sum 之后,除以数组的长度 arr.length ,计算结果以 double 类型返回
        return sum / arr.length;
    }

如图:

请添加图片描述

3. 运行代码

可以看见我们的测试类(Test.java)已经可以运行了,如图:

目前为止,我们已经实现了测试类(Test.java)中的工具类(ArrayUtils.java)以及其方法(toString、getAverage)。

请添加图片描述

现在我们右击运行我们的测试类

请添加图片描述

注意这里要安装并配置jdk环境才能够运行

得到的结果如下:

请添加图片描述

至此我们的定义工具类讲解就结束了,如果有不好的地方请评论告知!!感谢支持!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值