专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

代码块

代码块

作用

用来初始化类、对象

如果想要修饰代码块的话,只可以使用static

分类

静态代码块

  • 内部可以有输出语句
  • 随着类的加载而执行,只会执行一次,因为类只加载一次
  • 作用:初始化类的信息
  • 在一个类中定义了多个静态代码块,则按照声明的先后顺序进行
  • 静态代码块的执行要优先于非静态代码块的执行
  • 静态代码块内只能调用静态的属性、静态的方法、不能调用非静态的结构

70_1.png

运行结果

70_2.png

(因为静态代码块随着类的加载而执行,所以可以直接输出其中的内容)

非静态代码块

  • 内部可以有输出语句
  • 随着对象的创建而执行,每创建一个对象,就执行一次非静态代码块
  • 作用:可以在创建对象的时候,对对象的属性等进行初始化
  • 在一个类中定义了多个非静态代码块,则按照声明的先后顺序进行
  • 非静态代码块内可以调用静态的属性、静态的方法、或非静态的属性、非静态的方法

代码实现

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();
    }
}

运行结果

70_3.png

其中在执行“People p1 = new People();”语句时,已经加载了People类,所以显示People类中的静态代码块中的内容(输出殷志源和一个静态代码块),因为静态代码块随着类的加载而加载,只加载一次,所以只显示一次。

这条语句同时创建了一个对象,非静态代码块随着对象的创建而执行,所以随着显示非静态代码块语句(输出一个非静态代码块、吃饭、在唱歌语句)。

“People p2 = new People()”创建了第二个对象,执行非静态代码块(输出一个非静态代码块、吃饭、在唱歌语句)

“p1、nickname”,其中非静态代码块对nickname进行了初始化,所以可以输出其中初始化的内容。

未经允许不得转载:搜云库技术团队 » 代码块

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们