以实际代码和简明释义的方式帮助大家快速了解代码块和静态代码块的理解和使用
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);
}
}
文章不对的地方请指正。如果对您有帮助,请多多支持!更新时间:2022-11-02
版权声明:本文为java_Waaangzy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。