猿问

这是一个方法还是一个构造函数?

我正在阅读别人的代码并被这个片段弄糊涂了:


public static Builder Builder() {

        return new Builder();

    }

这是构造函数吗?构造函数通常没有“返回”语句。常规方法不使用大写的“Builder()”。我很困惑。


忽然笑
浏览 194回答 3
3回答

DIEA

区分构造函数和方法的关键特征是返回类型。所以    /* optional modifiers */ Builder()是一个构造1对Builder,但    /* optional modifiers */ Builder Builder()是一个名为的方法Builder,它返回一个Builder对象。这也是一种严重的风格违规,因为 Java 方法应该以小写字母开头。除此之外,这使人类更容易区分方法和构造函数!(虽然编译器不在乎...)还有其他的故事。一些修饰符允许用于方法,但不允许用于构造函数。以static修饰符为例。简而言之,您的示例是方法2。1 - 请注意,构造函数名称必须与封闭类名称匹配。但是如果你弄错了,编译器仍然会在编译错误中将其称为构造函数...。2 - 我们可以进一步将其归类为静态工厂方法。但是,这是一种设计分类,与 Java 语言本身无关。

12345678_0001

构造函数不能是静态的,不能返回任何东西。所以,这是一种方法。

一只名叫tom的猫

不,请参阅jls 8.8在所有其他方面,构造函数声明看起来就像一个没有结果的方法声明(第 8.4.5 节)。....与方法不同,构造函数不能是抽象的、静态的、最终的、本地的、strictfp 或同步的方法名称应重命名为 builder
随时随地看视频慕课网APP

相关分类

Java
我要回答