举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java初始化块分为几种类型 Java 初始化块

java初始化块分为几种类型 Java 初始化块

2023-04-23 00:17 Java教程

java初始化块分为几种类型 Java 初始化块

java初始化块分为几种类型

Java初始化块可以分为三种类型:静态初始化块、实例初始化块、构造函数。

静态初始化块是用static关键字声明的代码块,它会在类加载时被执行,而且只会被执行一次。它可以用来对类的静态成员变量进行初始化,也可以用来执行一些特殊的任务。

static { 
    // 静态初始化块 
} 

实例初始化块是用{}括起来的代码块,它会在每次创建对象时都会被执行一次。它可以用来对对象的成员变量进行初始化,也可以用来执行一些特殊的任务。

 
{ 
    // 实例初始化块 
} 

构造函数是一种特殊的方法,它会在每次创建对象时都会被执行一次。它与实例初始化和静态分开(如有必要),并且有不同的语法格式。

  
public class Test {  

    public Test() {  

        // 构造函数  

    }  

 }  
 

Java 初始化块

Java面向对象设计 - Java初始化块

实例初始化块

实例初始化块用于初始化类的对象。

一个实例初始化程序只是一个类的代码块,但在任何方法或构造函数之外。

实例初始值设定程序没有名称。它的代码只是放置在一个开放大括号和闭包。

例子

下面的代码展示了如何为Test类声明一个实例初始化器。

注意,实例初始化程序在实例上下文中执行,并且关键字this在实例初始化程序中可用。

class Test {
  private int num;
  // An instance initializer
  {
    this.num = 101;

    
  }

  
}

多重实例初始化

我们可以有一个类的多个实例初始化器。对于我们创建的每个对象,它们都以文本顺序自动执行。

所有实例初始值的代码在任何构造函数之前执行。

下面的代码演示了构造函数和实例初始化函数的执行顺序。

public class Main {
  {
    System.out.println("Inside instance initializer 1.");
  }

  {
    System.out.println("Inside instance initializer 2.");
  }

  public Main() {
    System.out.println("Inside  no-args constructor.");
  }

  public static void main(String[] args) {
    Main m = new Main();
  }
}

上面的代码生成以下结果。

实例初始化程序不能有return语句。


静态初始化块

静态初始化块也称为静态初始化器。它类似于实例初始化块。

它用于初始化一个类。每个对象执行一个实例初始化器,而当类定义被加载到JVM中时,只对一个类执行一次静态初始化器。

我们需要在其声明的开头使用static关键字。

我们可以在类中有多个静态初始化器。所有静态初始化器都按文本出现的顺序执行,并在任何实例初始化器之前执行。

以下代码演示了何时执行静态初始化程序。

public class Main {
  private static int num;
  {// An instance initializer
    System.out.println("Inside instance initializer.");
  }
  // A static initializer. Note the use of the keyword static below.
  static {
    num = 2014;
    System.out.println("Inside static initializer.");
  }

  // Constructor
  public Main() {
    System.out.println("Inside constructor.");
  }

  public static void main(String[] args) {
    System.out.println("Inside  main() #1.   num: " + num);
    // Declare a reference variable of the class
    Main si;
    System.out.println("Inside  main() #2.   num: " + num);
    new Main();    // Create an object

    System.out.println("Inside  main() #3.   num: " + num);
    new Main();// Create another object
  }
}

上面的代码生成以下结果。

静态初始化器不能抛出检查的异常,它不能有一个return语句。

阅读全文
以上是VUE中文网为你收集整理的java初始化块分为几种类型 Java 初始化块全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们