Java 入门23 工具类的封装

 

 VerifyTool工具类

package com.ITheima.Utils;

import java.util.Random;

public class VerifyTool {

    /**
     *
     * 私有构造器(不让工具类对外产生对象)
     * 为什么工具类中的方法不用实例方法做?
     * 实例方法需要创建的对象调用,此时用对象只是为了调用方法,这样会浪费内存
     */
    private VerifyTool(){

    }


    /**
     *
     *
     *类静态方法  生成n位数的验证码 大小写 数字 英文
     */
    public static String createCode(int n){
        Random r=new Random();
        String code="";
        //字符串
        String str="abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ0123456789";
        for (int i = 0; i < n; i++) {
            int index=r.nextInt(str.length());
            code+=str.charAt(index);
        }
        return code;
    }
}
View Code

Test 测试 类

package com.ITheima;

import com.ITheima.Utils.VerifyTool;

public class Test {
    public static void main(String[] args) {
        //调用VerifyTool的静态方法createCode产生验证码
        System.out.println(VerifyTool.createCode(8));
    }
}
View Code

案例二

 

 

 

 ArrayTool类

package com.ITheima.Utils;

import java.lang.reflect.Array;

public class ArrayTool {
    //私有化工具类
    private ArrayTool() {

    }
    public static String toStringTool(int[] arr) {
        if (arr == null) {
            System.out.println("arr 不能为null");
            return null;
        } else {
            String code="[";
            for (int i = 0; i < arr.length; i++) {
               code+=(i!=arr.length-1)?arr[i] + ",\t": arr[i];
            }
            code+="]";
            return code;
        }
    }

    //去掉最高一个最高分 去掉一个最低分 求平均值
    public static double scores(int[] arr){
        if(arr==null){
            System.out.println("arr 不能是null");
            return 0;
        }
        if(arr.length==0 || arr.length<=3){
            System.out.println("arr 的个数不能小于等于3");
            return 0;
        }
        int max=arr[0];
        int min=arr[0];
        double greatScores=0;
        for (int i = 0; i < arr.length; i++) {
           if(arr[i]>max){
               max=arr[i];
           }
           if(min>arr[i]){
               min=arr[i];
           }
           greatScores+=arr[i];
        }
        return (greatScores-max-min)/(arr.length-2);
    }

}
View Code

Test类

package com.ITheima;

import com.ITheima.Utils.ArrayTool;

public class Test1 {
    public static void main(String[] args) {
        /**/int [] arr={1,2,3,4,5,6,7,8};
//        int [] arr=null;
        System.out.println(ArrayTool.toStringTool(arr));
        System.out.println(ArrayTool.scores(arr));
    }
}
View Code

 案例三 斗地主游戏

 

 

 

 

 

 

 

package com.ITheima._static_codeblock;

import java.util.ArrayList;

public class TestDemo2 {
    //1用来存放牌的集合容器
    public static ArrayList<String> list=new ArrayList<>();

    //2在游戏启动之前需要将准备好的54张牌放进去,使用静态代码块进行初始化
    static{
        //牌的颜色
        String[] colors={"♦","♣","♥","♠"};
        //牌的种类
        String[] sizes={"A","2","3","4","5","6","7","8","9","10","J","Q"};
        //3 生成一副牌
        for (int i = 0; i < sizes.length; i++) {
            for (int i1 = 0; i1 < colors.length; i1++) {
                //将牌组合起来添加进入集合容器
                list.add(sizes[i]+colors[i1]);
            }
        }
        //4 添加大小王
        list.add("小王");
        list.add("大王");
    }
    //目标完成斗地主 凑成一副斗地主排
    public static void main(String[] args) {
        System.out.println(list);
    }
}
View Code

 

posted @ 2022-06-24 20:52  还有什么值得拥有  阅读(106)  评论(0编辑  收藏  举报