静态代码块:
格式:static{ }
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次
使用场景:在类加载的时候做一些静态数据初始化的操作,以便后续使用。
需求:
在启动游戏房间的时候,应该提前准备好54张牌,后续才可以直接使用这些牌数据。
分析:
①该房间只需要一副牌。
②定义一个静态的ArrayList集合存储54张牌对象,静态的集合只会加载一份。
③在启动游戏房间前,应该将54张牌初始化好
④当系统启动的同时需要准备好54张牌数据,此时可以用静态代码块完成。
package Curyy;
import java.util.ArrayList;
public class Test {
/*点数: "3","4","5","6","7","8","9","10","J","Q","K","A","2"
花色: "♠", "♥", "♣", "♦"*/
//1、准备一个容器,存储54张牌对象,这个容器建议使用静态的集合。静态的集合只加载一次。
public static ArrayList<String> cards = new ArrayList<>();
//2、在游戏启动之前需要准备好54张牌放进去,使用静态代码块进行初始化
static {
//3、准备4种花色:类型确定,个数确定了
String[] colours = {"♠", "♥", "♣", "♦"};
String[] points = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
for (int i = 0; i < points.length; i++) {
for (int j = 0; j < colours.length; j++) {
cards.add(colours[j] + points[i]);
}
}
//4.添加大小王
cards.add("小王");
cards.add("大王");
}
public static void main(String[] args) {
//5.输出ArrayList集合
System.out.println(cards);
}
}