java面对对象入门(4)-程序块初始化

网友投稿 251 2022-06-21


Java实例初始化程序是在执行构造函数代码之前执行的代码块。每当我们创建一个新对象时,这些初始化程序就会运行。

1.实例初始化语法

用花括号创建实例初始化程序块。对象初始化语句写在括号内。

public class DemoClass {

//This is initializer block 1

{

//statements

}

//This is initializer block 2

{

//statements

}

}

2.Java实例初始化器功能

实例初始化器具有以下功能。

我们可以在一个类中定义多个初始化器。

所有初始化程序将按顺序执行,以使其出现在类主体中。

初始化程序在调用父类构造函数之后,在执行子类构造函数之前运行。请注意super(),如果我们未在子类的构造函数中显式提供第一个语句,则Java会插入父类的默认构造函数。

执行完所有初始化程序后,将执行构造函数的语句。

我们可以在初始化器中使用此类和父类的构造函数的调用。

3.Java实例初始化序列流程

基于以上给出的功能,让我们概述一下对象的实例初始化如何进行。

子类构造函数被调用。

子类构造函数的第一个语句为super()(或提供的显式构造函数),因此将调用父类构造函数。

父类的初始化程序按其出现顺序执行。

父类构造函数语句被执行。

子类的初始化程序按其出现顺序执行。

子类构造函数语句被执行。

4.Java实例初始化示例

让我们快速地看一个演示以上理论的例子。

ParentClass.java

public class ParentClass

{

public ParentClass()

{

System.out.println("In ParentClass Constructor");

}

//Instance Initializer

{

System.out.println("In ParentClass Instance Initializer");

}

}

ChildClass.java

public class ChildClass extends ParentClass

{

public ChildClass()

{

super(); //If not provided, JVM will insert it

System.out.println("In ChildClass Constructor");

}

//Instance Initializer 1

{

System.out.println("In ChildClass Instance Initializer 1");

}

//Instance Initializer 2

{

System.out.println("In ChildClass Instance Initializer 2");

}

}

Main.java

public class Main

{

public static void main(String[] args)

{

ChildClass childObj = new ChildClass();

}

}

程序输出

In ParentClass Instance Initializer

In ParentClass Constructor

In ChildClass Instance Initializer 1

In ChildClass Instance Initializer 2

In ChildClass Constructor


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java面向对象入门(3)-java构造方法
下一篇:SpringBoot整合NoSql--(四)Session共享(springboot管理session)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~