📅  最后修改于: 2023-12-03 15:16:32.437000             🧑  作者: Mango
Java中的实例初始化块(IIB)是非静态块,在创建对象的时候被执行。它位于Java类中成员变量的位置,用花括号包围。
public class MyClass {
int a;
String b;
{
// instance initialization block
a = 10;
b = "hello";
}
public MyClass() {
// constructor
}
}
在上面的示例中,{ }
中的代码就是实例初始化块。当创建MyClass
对象时,a
将被初始化为10
,b
将被初始化为"hello"
。
static
关键字修饰。public class MyClass {
int a;
String b;
{
// instance initialization block
setA(10);
setB("hello");
}
public void setA(int a) {
this.a = a;
}
public void setB(String b) {
this.b = b;
}
}
public class MyClass {
int a;
{
// instance initialization block
a = 10;
}
public MyClass() {
// constructor 1
}
public MyClass(int a) {
// constructor 2
}
}
public class MyClass {
int a;
String b;
{
// instance initialization block
a = 10;
b = "hello";
}
public MyClass() {
// constructor 1
}
public MyClass(int a) {
// constructor 2
this.a = a;
}
}
实例初始化块有以下几个优点:
本文介绍了Java中的实例初始化块(IIB)及其特点和优点。实例初始化块可以用来对实例变量进行初始化,也可以进行复杂的初始化操作,可以在多个构造函数中共享初始化代码,减少重复的代码,使代码更加简洁易懂。