4. Изучите модификаторы видимости
В коде до сих пор не было модификаторов видимости, таких как `public` publicили private`public`. Это потому, что по умолчанию в Kotlin всё является публичным, а это значит, что ко всему можно получить доступ везде, включая классы, методы, свойства и переменные-члены.
В Kotlin классы, объекты, интерфейсы, конструкторы, функции, свойства и их сеттеры могут иметь модификаторы видимости :
privateЭто означает, что он будет виден только в этом классе (или исходном файле, если вы работаете с функциями).protectedЭто то же самое, что иprivate, но оно также будет видно любым подклассам.internalЭто означает, что он будет виден только внутри этого модуля. Модуль — это набор файлов Kotlin, скомпилированных вместе, например, библиотека, клиентское или серверное приложение в проекте IntelliJ. Обратите внимание, что использование слова «модуль» здесь не связано с модулями Java, которые были введены в Java 9.publicЭто означает, что данные видны за пределами класса. По умолчанию все является публичным, включая переменные и методы класса.
Дополнительную информацию см. в разделе «Модификаторы видимости» в документации Kotlin.
Переменные участника
Свойства внутри класса, или переменные-члены, publicпо умолчанию являются изменяемыми. Если вы определяете их с помощью `<div>` var, они являются изменяемыми, то есть доступными для чтения и записи. Если вы определяете их с помощью `<div>` val, они становятся доступными только для чтения после инициализации.
Если вам нужно свойство, которое ваш код может читать или записывать, но внешний код может только читать, вы можете оставить свойство и его геттер публичными, а сеттер объявить приватным, как показано ниже.
var volume: Int
get() = width * height * length / 1000
private set(value) {
height = (value * 1000) / (width * length)
}