代码块或初始化块(搭建结构)
public class BlockTest {
}
class Person {
// 属性
String name;
int age;
static String desc = "阿巴阿巴";
//构造器
public Person() {
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
// 方法
public void eat() {
System.out.println("吃饭");
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
// 代码块
{
}
}
1、代码块作用:用来初始化类或对象
2、可以修饰吗?可以!但只能用static修饰
3、分类:静态代码块/非静态代码块
4、静态代码块:(可以定义多个,按照声明的先后顺序执行)
>内部可以有输出语句
>随着类的加载而执行
>静态代码块只能执行一次
5、非静态代码块:(优先于静态代码块)
>内部可以有输出语句
>随着对象的创建而执行
>有new几个对象就执行几次
>作用:在创建对象时,造一次对象,就对对象的属性进行初始化
6、代码块先于构造器执行
7、由父类到子类,静态先行