1

似乎没有理由和/或可能在 scala 中定义默认构造函数。

基本上,构造函数的概念不存在,因为所有与构造函数相关的东西都写在类体中吗?

class SeriousClass {
    exmpl: Text = new Text

    runMethod()
}

我能想到的唯一原因是default constructor在带参数的之外定义一个,或者在默认构造函数之外定义一个带参数的。

class SeriousClass2(param: Param) {
    def this() {
        this(new Param())
    }
}
4

1 回答 1

4

默认构造函数确实存在,是的,它是整个类。而不是写

class SeriousClass2(param: Param) {
    def this() {
        this(new Param())
    }
}

您最好只为默认构造函数提供默认值:

class SeriousClass2(param: Param = new Param()) {

}

它既惯用又更具可读性。

此外,有时您可能希望从外部禁止类实例化。这可以通过指定构造函数范围进行归档:

class PrettyPrivateClass private() {

}
于 2013-04-22T18:22:06.653 回答