gpt4 book ai didi

java - 在java中创建实例时为成员变量赋值

转载 作者:行者123 更新时间:2023-11-30 05:52:02 26 4
gpt4 key购买 nike

在浏览其中一个库时,我在 Java 中发现了以下结构,这对我来说真的很新。假设在java 中有一个类Point

class Point {
int x;
int y;
public Point() {}
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}

在为 Point 创建实例时,它们在实例创建本身中初始化变量 xy 如下:

Point inst = new Point() {
{
this.x = 10;
this.y = 20;
}
};

这与java中的instance block有关还是其他什么?

最佳答案

你的第二个例子:

  1. 创建一个派生自 Point 的匿名
  2. 使用初始化 block 来初始化值

语法:

new Object() { ... }

看起来像一个 Object,但实际上是在创建一个派生自 Object 的新对象。然后内括号声明初始化程序 block 。

这是一种偶尔用于初始化集合的做法,例如

new ArrayList<String>(){{
add("1");
add("2");
}};

等需要注意的一件事是它是一个内部类,因此存在对外部(周围)类的隐式引用。通常这不是问题,除非(比如说)你来连载它。

关于java - 在java中创建实例时为成员变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com