代码块概述:
- 代码块是类的5大成分之一(成员变量,构造器,方法,代码块,内部类),定义在类中方法外。
- 在Java类中,使用 { } 括起来的代码被成为代码块。
代码块分为
1.静态代码块:
-
格式:static{}
-
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次。
-
使用场景:在类加载的时候做一些静态数据初始化的操作,以便后续使用。
2.构造代码块 = 实例代码块(了解,见得少)
-
格式:{}
-
特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行
-
使用场景:初始化实例资源。
代码举例如下:
静态代码块:
public class StaticDemo1 {
public static String schoolName;
/**
静态代码块:有static修饰,属于类,与类一起优先加载一次,自动触发执行。
作用:可以用于初始化静态资源。
*/
static {
System.out.println("-----静态代码块被执行了-----");
schoolName = "鸟儿";
}
public static void main(String[] args) {
//目标:理解静态代码块
System.out.println("-----main方法执行-----");
System.out.println(schoolName);
}
}
实例代码块:
public class StaticDemo2 {
public StaticDemo2(){
System.out.println("===无参构造器被触发执行===");
}
/**
实例代码块:无static修饰,属于对象,每次构建对象时,都会触发一次执行。
*/
{
System.out.println("===实例代码块被触发执行===");
}
public static void main(String[] args) {
//目标:理解实例代码块(构造代码块)
StaticDemo2 s1 = new StaticDemo2();
StaticDemo2 s2 = new StaticDemo2();
}
}
实现代码如下:
public class StaticTest3 {
/**
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[j]
//一张牌
String card = sizes[i] + colors[j];
cards.add(card);
}
}
//e.单独加入大小王
cards.add("小
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)