gpt4 book ai didi

java - 为什么人们很少使用 Java 中的匿名构造函数

转载 作者:搜寻专家 更新时间:2023-11-01 03:38:49 25 4
gpt4 key购买 nike

昨天学习了java中的匿名构造函数,不是匿名类。我以前没有见过这个构造函数,所以我在谷歌中搜索它。结果是我知道如何使用它以及它是什么。但是关于这种用法的信息很少。

匿名构造函数是用一对大括号括起来的 block 代码。并且匿名将在公共(public)构造函数之前运行并在静态代码块之后运行。

我想知道为什么没有人使用这个匿名构造函数。使用它对我们的java应用程序有什么不好的影响吗?

感谢您的帮助。

下面是一个匿名构造函数的例子:

    public class Static_Super_Conustruct {    

static class Base{
{
System.out.println("Base anonymous constructor");
}
public Base() {
System.out.println("Base() common constructor");
}
static{
System.out.println("Base static{} static block");
}
}

static class Sub extends Base{

{
System.out.println("Sub anonymous constructor");
}
public Sub() {
System.out.println("Sub() common constructor");
}
static{
System.out.println("Sub static{} static block");
}
}

/**
* @param args
*/
public static void main(String[] args) {
new Sub();
}
// Results:
// Base static{}static block
// Sub static{}static block
// Base anonymous constructor
// Base() common constructor `enter code here`
// Sub anonymous constructor
// Sub() common constructor

}

最佳答案

该构造称为实例初始化器。我怀疑它很少被使用,因为大多数初始化都可以在字段初始化器或构造函数中执行。

虽然我确实使用过一次,但它派上用场了。我有一个初始化为某些东西的字段,我想更改它以在分配默认值之前检查几个属性。我本可以在构造函数中编写该代码,但构造函数位于文件的另一端。将实例初始值设定项放在声明和记录字段的位置旁边非常有用且方便。

关于java - 为什么人们很少使用 Java 中的匿名构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20581045/

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