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

一、工具类概述

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
    }
}

Guess you like

Origin blog.csdn.net/lixingecho/article/details/121397486