первым действием вызвать другой конструктор, причём толко тот, который объявлен ранее в коде.
в конечном итоге главный конструктор вызовется в любом случае, а внутри главного конструктора вы уже объявляете все необходимые вам поля и методы
если будет возможность объявлять поля во вспомогательном конструкторе
/* ненастоящий код */
class Foo(val a: Int) {
def this(s: String) = {
this(s.toInt)
field val b: Int = s.toInt + 17
}
}
то как инициализировать поле b, если экземляр класса был создан через главный конструктор?
val foo = new Foo(42)
Понял, спасибо большое. Не подумал.
Обсуждают сегодня