【Java】static关键字案例:创建工具类

本文探讨了Java工具类的概念,包括其优点和设计要求,如构造器私有化以确保代码复用和内存效率。通过案例展示了如何创建用于生成随机验证码和操作数组的工具类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、工具类概述

1、工具类是什么,有什么好处?

  • 工具类内部都是一些静态方法,每个方法完成一个功能
  • 一次编写,处处可用,提高代码重用性

2、工具类有什么要求

  • 建议将工具类构造器私有化
  • 私有化目的:禁止外部创建对象,因为工具类里面都是静态方法,直接用类名访问即可。(还可以节约内存)

二、工具类案例

1、利用工具类,生成随机验证码

工具类:(生成随机验证码)

public class VerifyTool {

    /**
     * 构造器私有化
     */
    private VerifyTool(){
    }

    public static String createCode(int n ){
        // 1、定义可能出现的字符信息
        String datas = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456";

        // 2、循环n次,每次生成一个随机的索引,提取相应的字符连接起来即可
        String code = "";
        Random r = new Random();
        for (int i = 0; i < n; i++) {
            // 随机获得一个索引
            int index = r.nextInt(datas.length());
            char c = datas.charAt(index);
            code+=c;
        }

        // 3、输出生成的验证码
        return code;
    }
}

调用工具类:

public class ToolClass {
    public static void main(String[] args) {
        System.out.println("验证码:"+VerifyTool.createCode(6));
    }
}

2、定义数组工具类

在这里插入图片描述
定义数组工具类:(输出数组内容、求数组平均值)

public class ArrayUtils {

    //构造器私有化
    private ArrayUtils(){
    }

    /**
     * 返回数组内容
     */
    public static String toString(int[] arr){
        if(arr !=null ){
            String result = "[";
            for (int i = 0; i < arr.length; i++) {
                result += (i == arr.length - 1 ? arr[i] : arr[i]+",");
            }
            result += "]";
            return result;
        }else {
            return null;
        }
    }

    /**
     * 求平均值 (去掉最高分和最低分)
     */
    public static double getAverage(int[] arr){
        if(arr!=null && arr.length>0){
            int max = arr[0];
            int min = arr[0];
            int sum = 0;

            for (int i = 0; i < arr.length; i++) {
                if(arr[i] > max){
                    max = arr[i];
                }
                if(arr[i]<min){
                    min = arr[i];
                }
                sum += arr[i];
            }

            return (sum-max-min)*1.0/ (arr.length-2) ;
        }else {
            return 0;
        }
    }
}

调用工具类:

public class Test {
    public static void main(String[] args) {
        int[] arr = {10,20,30};

        System.out.println(arr); // 输出了数组地址:[I@4554617c
        System.out.println("数组内容:"+ArrayUtils.toString(arr)); // 数组内容:[10,20,30]
        System.out.println("数组平均分:"+ArrayUtils.getAverage(arr)); // 数组平均值:20.0
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值