В чем отличие field от property?



В Kotlin свойство (property) — это абстракция над полями (fields), которая позволяет обращаться к значению переменной через методы геттера и сеттера, вместо прямого доступа к полю.



Field — это переменная, которая содержит значение и может быть доступна напрямую или через геттер/сеттер.



Пример определения свойства с геттером и сеттером в классе:



class Person {

var name: String = ""

get() = field.toUpperCase() // возвращает значение поля name в верхнем регистре

set(value) {

field = value.trim() // устанавливает значение поля name без начальных и конечных пробелов

}

}



В данном примере свойство name содержит поле, которое может быть доступно напрямую только внутри класса, и методы геттера и сеттера, которые позволяют получать и изменять значение свойства через специальные методы.