范例1:普通代码块
public class Demo {
public static void main(String[] args) {
{// 普通代码块
int num = 10;// 局部变量
System.out.println("Num" + num);
}
int num = 100;
System.out.println("Num" + num);
}
}
================分割线================
范例2:构造块
class Book{
public Book(){
System.out.println("【A】Book类的构造方法");
}
{
System.out.println("【B】Book类的构造方法");
}
}
public class Demo {
public static void main(String[] args) {
new Book();
}
}
================分割线================
范例3:静态块(非主类中)
class Book{
public Book(){
System.out.println("【A】Book类的构造方法");
}
{
System.out.println("【B】Book类的构造方法");
}
static{
System.out.println("【C】Book类的构造方法");
}
}
public class Demo {
public static void main(String[] args) {
new Book();
new Book();
new Book();
}
}
静态块优先权最大且只执行一次
================分割线================
范例4:静态块(非主类中)
class Book{
static String str;
public Book(){
System.out.println("【A】Book类的构造方法");
}
{
System.out.println("【B】Book类的构造方法");
}
static{
str="Hello".substring(0, 2);
System.out.println("【C】Book类的构造方法");
}
}
public class Demo {
public static void main(String[] args) {
new Book();
new Book();
new Book();
System.out.println(Book.str);
}
}
================分割线================
范例5:静态块(在主类中)
public class Demo {
static {
System.out.println("============");
}
public static void main(String[] args) {
System.out.println("Hello");
}
}