Разница между анонимным и декларируемым (объявляемым) объектом
• анонимный объект (object) инициализируется непосредственно при использовании;
• декларированный (объявляемый) объект (object Name) инициализируется лениво, в момент первого к нему доступа;
• вспомогательный объект (companion object) инициализируется в момент, когда класс, к которому он относится, загружен и семантически совпадает со статическим инициализатором Java.
• анонимный объект (object) инициализируется непосредственно при использовании;
• декларированный (объявляемый) объект (object Name) инициализируется лениво, в момент первого к нему доступа;
• вспомогательный объект (companion object) инициализируется в момент, когда класс, к которому он относится, загружен и семантически совпадает со статическим инициализатором Java.