• 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
  • 相关阅读:
    java计算组合数
    编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数
    不用static,巧用对象.方法调用java中的函数
    主函数调用相同函数名的小知识
    poj 3608 旋转卡壳求不相交凸包最近距离;
    UVa1453或La4728 凸包+枚举(或旋转卡壳)
    hdu4666 最远曼哈顿距离
    poj2926 曼哈顿最远距离
    poj 2187 凸包加旋转卡壳算法
    UVa 10256 凸包简单应用
  • 原文地址:https://www.cnblogs.com/lvlisn/p/16410187.html
Copyright © 2020-2023  润新知