Как правильно создавать объекты на kotlin в коде Activity?

Учусь разрабатывать приложения под Android на kotlin. Нужно создать объект типа MyPreferences (созданный мной класс) в MainActivity, а потом в этот объект сохранить какие-то данные. Объясните пожалуйста, почему я могу объявить глобальную переменную типа Preferences после объявления класса, но не могу сразу же, во время её объявления, создать новый объект этой переменной, а должен создавать его в методе onCreate()?

Если точнее, почему я могу сделать так:

class MainActivity : AppCompatActivity() {
    
    **private var prefs: MyPreferences? = null**

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)

            **prefs = MyPreferences(this)**

Но не могу вот так:

class MainActivity : AppCompatActivity() {
        
        **private var prefs: MyPreferences? = MyPreferences(this)**
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
    
            setContentView(R.layout.activity_main)

Ответы (1 шт):

Автор решения: Arty Morris

Потому что у тебя при объявлении нет ещё объекта this. Так и должно быть, ты создаешь объект, а затем уже начинаешь к нему привязывать переменные

→ Ссылка