似乎没有理由和/或可能在scala中定义默认构造函数。
基本上,构造函数的概念是否不存在,因为所有与构造函数相关的内容都是在类体中编写的?
class SeriousClass {
exmpl: Text = new Text
runMethod()
}
我能想到的唯一原因是除了参数化之外还要定义default constructor
,或者除了默认构造函数之外还要定义参数。
class SeriousClass2(param: Param) {
def this() {
this(new Param())
}
}
答案 0 :(得分:4)
默认构造函数确实存在,是的,它是整个类的主体。而不是写
class SeriousClass2(param: Param) {
def this() {
this(new Param())
}
}
您最好只为默认构造函数提供默认值:
class SeriousClass2(param: Param = new Param()) {
}
这是惯用的,更具可读性。
此外,有时您可能希望禁止来自外部的类实例化。这可以通过指定构造函数范围进行存档:
class PrettyPrivateClass private() {
}