static 的工具块
开发一个验证码
import java.util.Random;
/**
工具类
*/
public class ItheimaUtil {
/**
注意:由于工具类无需创建对象,所以把其构造器私有化会显得很专业!
*/
private ItheimaUtil() {
}
/**
静态方法
*/
public static String createVerifyCode(int n){
//开发一个验证码
//1.定义一个变量记住验证码
String code = "";
//2.定义一个变量记住全部验证码字符。
String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//3.定义一个循环生成几个随机索引,去得到几个字符
Random r = new Random();
for (int i = 0; i < n; i++) {
int index = r.nextInt(data.length());
code += data.charAt(index);
}
return code;
}
}
可以用其他类直接调用 不用再重复写代码了
直接用 类名.
定义数组工具类
public class ArrayUtil {
/**
* 私有构造器
*/
private ArrayUtil() {
}
/**
* 工具方法:静态方法
*/
public static String toString(int[] arr) {
//先校验一下
if (arr == null) {
return null;
}
//2.拼接内容并返回 arr= {}
String result = "]";
for (int i = 0; i < arr.length; i++) {
result += (i == arr.length - 1 ? arr[i] : arr[i] + ",");
}
result += "]";
return result;
}
}
在其他地方调用
static 的代码块
静态代码块是先跑的 再跑main 方法
相关案例
- 需求:
在启动游戏房间的时候,应该提前准备好54张牌,后续才可以直接使用这些牌数据。
*分析:
1.该房间只需要一副牌
2.定义一个静态的ArrayList集合存储54张牌对象,静态的集合只会加载一份
3.在启动游戏房间前,应该将54张牌初始化好
4.当系统启动的同时需要准备好54张牌数据,此时可以用静态代码块完成
//1.定义一个静态的集合,这样这个集合只加载 一个,因为当前房间只需要一副牌
public static ArrayList<String> cards = new ArrayList<>();
//2.在程序真正运行main方法之前,把54张牌存进去,后续游戏可以直接使用
static {
//3.正式做牌,放到集合中去
//a.定义一个数组存储全部点数,类型确定了,个数确定了
String[] sizes = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
//b.定义一个数组存储全部的花色,类型确定了,个数确定了
String[] colors = {"♥","♠","♦","♣"};
//c。遍历点数
for (int i = 0; i < sizes.length; i++) {
//sizes[i]
//d.遍历花色
for (int j = 0; j < colors.length; j++) {
//colors[i]
String card = sizes[i] + colors[i];
cards.add(card);
}
}
//e.单独加入大小王
cards.add("小🃏");
cards.add("大🃏");
}
public static void main(String[] args) {
System.out.println("新牌"+cards);
}