代码块按照有无static修饰分为:
1.静态代码块。
2.实例代码块。
1、静态代码块
静态代码块的格式:
static {
}
静态代码块特点:
-- 必须有static修饰。
-- 会与类一起优先加载,且自动触发执行一次。
静态代码块作用:
-- 可以在执行类的方法等操作之前先在静态代码块中进行静态资源的初始化操作。
2、实例代码块
实例代码块的格式:
{
}
实例代码块的特点:
-- 无static修饰。
-- 会与类的对象一起加载,每次创建类的对象的时候,实例代码块都会被加载且自动触发执行一次。
-- 实例代码块的代码在底层实际上是提取到每个构造器中去执行的!
实例代码块的作用:
-- 实例代码块可以在创建对象之前进行实例资源的初始化操作。
3、枚举
枚举的作用:是为了做信息的标志和信息的分类。
定义枚举的格式:
修饰符 enum 枚举名称{
第一行都是罗列枚举实例的名称。
}
枚举的特点:
1.枚举类是用final修饰的,枚举类不能被继承!
2.枚举类默认继承了java.lang.Enum枚举类。
3.枚举类的第一行都是常量,存储都是枚举类的对象。
4.枚举类的第一行必须是罗列枚举类的实例名称。
所以:枚举类相当于是多例设计模式。
相关API:
public class EnumDemo03 {
public static void main(String[] args) {
Season03 s = Season03.SPRING;
System.out.println(s); // SPRING
System.out.println("---------------");
// 获取当前类的全部枚举实例 : public static Season[] values()*********************
Season03[] ss = Season03.values();
for(int i = 0 ; i < ss.length ; i++ ){
Season03 s1 = ss[i];
System.out.println(s1);
}
// 获取枚举对象的索引: ordinal()************************************
Season03 s2 = Season03.AUTUMN;
System.out.println(s2.ordinal()); // 2
}
}
enum Season03{
SPRING, SUMMER , AUTUMN, WINTER ;
}
enum Sex03{
BOY , GIRL;
}