以实际代码和简明释义的方式帮助大家快速了解代码块和静态代码块的理解和使用
1、代码块的作用:用来初始类,对象
2、代码块如果有修饰的话只能有static
3、代码块分两种:静态代码块、非静态代码块
静态代码块:
>类内部可以有输出语句
>随着类的 加载 而 执行 ,且执行一次(明显区别)
>作用:初始化类的信息
>如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
>静态代码块的执行要优先与非静态代码块的执行
非静态代码块
>类内部可以有输出语句
>随着类的 创建 而 执行
>每创建一次对象就执行一次非静态代码块(明显区别)
>作用:可以在创建对象时,对对象的属性进行初始化
>如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
区别:
静态代码块:
>静态代码块只能调用静态的数据或方法
非静态代码块:
>静态和非静态的属性和方法都可以调用(明显区别)
class Block{
String name;
int age;
static String desc;
static {
System.out.println("静态代码块1");
desc = "张三";
}
static {
System.out.println("静态代码块2");
desc = "里斯";
}
{
System.out.println("非静态代码块1");
desc = "王五";
name = "赵六";
}
{
System.out.println("非静态代码块2");
}
}
public class BlockTest {
public static void main(String[] args) {
String desc = Block.desc;
System.out.println(desc);
Block block1 = new Block();
System.out.println(block1);
Block block2 = new Block();
System.out.println(block2);
}
}
文章不对的地方请指正。如果对您有帮助,请多多支持!