标签:技术 public void adb 运行 lan *** 语句 system
用来初始化类、对象
如果想要修饰代码块的话,只可以使用static
运行结果
(因为静态代码块随着类的加载而执行,所以可以直接输出其中的内容)
public class Test {
static String name;
public static void main(String[] args) {
People p1 = new People();
System.out.println("***************");
People p2 = new People();
System.out.println("***************");
p1.sing();
System.out.println(p1.nickname);
System.out.println("***************");
p2.sing();
}
}
class People{
static String name;
String nickname;
public static void eat(){
System.out.println("吃饭");
}
public void sing(){
System.out.println("在唱歌");
}
static {
name = "殷志源";
System.out.println(name);
System.out.println("一个静态代码块");
}
{
System.out.println("一个非静态的代码块");
nickname = "丸子";
eat();
sing();
}
}
运行结果
其中在执行“People p1 = new People();”语句时,已经加载了People类,所以显示People类中的静态代码块中的内容(输出殷志源和一个静态代码块),因为静态代码块随着类的加载而加载,只加载一次,所以只显示一次。
这条语句同时创建了一个对象,非静态代码块随着对象的创建而执行,所以随着显示非静态代码块语句(输出一个非静态代码块、吃饭、在唱歌语句)。
“People p2 = new People()”创建了第二个对象,执行非静态代码块(输出一个非静态代码块、吃饭、在唱歌语句)
“p1.nickname”,其中非静态代码块对nickname进行了初始化,所以可以输出其中初始化的内容。
标签:技术 public void adb 运行 lan *** 语句 system
原文地址:https://www.cnblogs.com/CrabDumplings/p/13185376.html