Назад к вопросам
JuniorТеорияЧасто
Что выведет программа (строки через пробел)?
class Box(val size: Int) {
init { println("init $size") }
val double = size * 2
init { println("double $double") }
}
fun main() {
Box(3)
}init 3 double 6
- Ждать
double 6 init 3: считать, что свойства заполняются до всехinit. Инициализаторы и блокиinitвыполняются сверху вниз, в порядке записи. - Ждать
double 0: считать, что всеinitвыполняются раньше свойств.double = size * 2стоит между двумя блоками, поэтому второйinitчитает6.
- Что изменится, если перенести
val doubleниже второго блокаinit? - Сколько блоков
initможет быть в одном классе?