Объект-выражение (анонимный объект/object expression)



Объект-выражение — это выражение, которое "на ходу" создает анонимный объект.



Для объекта-выражения не указывается имя!

Если же объекту всё-таки требуется имя, то его можно сохранить в переменной:



val tom = object {

val name = "Tom"

var age = 37

fun sayHello() {

println("Hi, my name is $name")

}

}

println("Name: ${tom.name} Age: ${tom.age}")

tom.sayHello()



Анонимные объекты не являются синглтонами!

Каждый раз при выполнении объекта-выражения создаётся новый объект.



Анонимный объект является заменой анонимным внутренним классам в Java.