- Java类
- Java包
- Java方法
- Java访问
- Java创建
- Java对象(Object)
- Java内部类
- Java继承
- Java抽象类
- Java泛型类
- Java异常
- Java接口
- Java枚举
- Java注解
Java初始化块
实例初始化块
实例初始化块用于初始化类的对象。一个实例初始化程序只是一个类的代码块,但在任何方法或构造函数之外。实例初始值设定程序没有名称。它的代码只是放置在一个开放的大括号和闭包中。
示例
下面的代码展示了如何为Test
类声明一个实例初始化器。注意,实例初始化程序在实例上下文中执行,并且关键字this
在实例初始化程序中可用。
class Test { private int num; // An instance initializer { this.num = 101; /* Other code for the instance initializer*/ } /* Other code for Test class*/ }
多重实例初始化
一个类可以有多个实例初始化器。对于创建的每个对象,它们都以文本顺序自动执行。所有实例初始值的代码在任何构造函数之前执行。
下面的代码演示了构造函数和实例初始化函数的执行顺序。
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(); } }
上面的代码生成以下结果。
Inside instance initializer 1. Inside instance initializer 2. Inside no-args constructor.
实例初始化程序中不能有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 = 2018; 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 } }
上面的代码生成以下结果。
Inside static initializer. Inside main() #1. num: 2018 Inside main() #2. num: 2018 Inside instance initializer. Inside constructor. Inside main() #3. num: 2018 Inside instance initializer. Inside constructor.
上一篇:Java构造函数(构造器)
下一篇:Java Object类
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
扫描二维码
程序员编程王