文章目录
初始化块
代码块:
{
xxxx
}
初始化块是对构造器的补充,不能接受任何参数,用于定义类实例化生成的所有对象共有的属性,方法和内容
非静态代码块:没有static修饰的代码块
1.可以有输出语句。
2.可以对类的属性声明进行初始化操作。
3.可以调用静态和非静态的变量或方法。
4.若有多个非静态的代码块,那么按照从上到下的顺序依
次执行。
5.每次创建对象的时候,都会执行一次。且先于构造器执行
public class Person {
String name;
//构造方法
public Person(){
this.name = "liming";
System.out.println("执行的构造方法");
}
//非静态代码块
{
System.out.println("执行的非静态代码块");
}
public static void main(String[] args) {
new Person();
}
}
打印结果:
执行的非静态代码块
执行的构造方法
执行顺序:
1 类的属性默认初始化
2 执行的非静态代码块
3 执行的构造方法
public static void showAge(){
System.out.println(age);
}
static int age = 18;
//静态代码块
static{
//这里只能使用静态static修饰的属性和方法
age = 1;
showAge();
System.out.println("执行的静态代码块");
}//习惯把属性放在后面,代码块写在前面
静态代码块只执行一次。
public class Person {
String name;
static int age;
public Person(){
this.name = "liming";
System.out.println("执行的构造方法");
}
//非静态代码块
{
System.out.println("执行的非静态代码块");
}
public <