在浏览其中一个库时,我发现java中的以下构造对我来说非常新。假设有一个类 Point
在 java
.
class Point {
int x;
int y;
public Point() {}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
为创建示例时 Point
,它们初始化变量 x
以及 y
在示例创建本身中,如下所示:
Point inst = new Point() {
{
this.x = 10;
this.y = 20;
}
};
这与 instance block
用java还是别的什么?
1条答案
按热度按时间9gm1akwq1#
你的第二个例子:
创建从点派生的匿名类
使用初始值设定项块初始化值
语法:
看起来像个
Object
,但实际上正在创建从Object
. 然后内括号声明初始化程序块。这是一种偶尔用于初始化集合的做法,例如。
需要注意的是,它是一个内部类,因此有一个对外部(周围)类的隐式引用。通常不会有问题,除非你来连载。