一、工具类概述
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
}
}