java object initializer_Java instance initializer - Java initializer block - 入门小站-rumenz.com

Java instance initializers是在constructor代码执行之前执行的代码块。 每当我们创建一个新对象时,这些初始化程序就会运行。

1. Instance initializer syntax

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

public class DemoClass {

//This is initializer block 1

{

//statements

}

//This is initializer block 2

{

//statements

}

}

2. Java instance initializer features

实例初始化器具有以下功能。我们可以在一个类中定义multiple initializers 。

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

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

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

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

3. Java instance initialization sequence flow

基于以上给出的功能,让我们概述一下对象的实例初始化如何进行。子类构造函数被调用。

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

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

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

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

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

4. Java instance initializer example

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

{

public ParentClass()

{

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

}

//Instance Initializer

{

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

}

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

}

}public class Main

{

public static void main(String[] args)

{

ChildClass childObj = new ChildClass();

}

}

Program output.In ParentClass Instance Initializer

In ParentClass Constructor

In ChildClass Instance Initializer 1

In ChildClass Instance Initializer 2

In ChildClass Constructor

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值