Вот мой код Kotlin:
class Test1 {
var name: String? = null
var isMarried: Boolean = false
}
и используйте его так:
val test1 = Test1()
test1.name = "Name1"
test1.isMarried = true
System.out.println("name = " + test1.name + ", isMarried = " + test1.isMarried)
Но я думаю, что это не очень хорошее решение, потому что в классе Test1
свойство (по умолчанию)) имеет публичный доступ . В результате свойства name
и isMarried
видны для всех приложений . Это очень плохо. Это нарушает инкапсуляцию.
Итак, чтобы исправить это, я использую следующий подход:
class Test2 {
private var name: String? = null
private var isMarried: Boolean = false
fun getName(): String? {
return name
}
fun setName(name: String) {
this.name = name
}
fun isMarried(): Boolean {
return isMarried
}
fun setMarried(isMarried: Boolean) {
this.isMarried = isMarried
}
}
и использую его так:
val test2 = Test2()
test2.setName("Name2")
test2.setMarried(false)
System.out.println("name = " + test2.getName() + ", isMarried = " + test2.isMarried())
Как видите, я был создан мои пользовательские методы получения / установки . Также свойства name
и isMarried
являются частными . В результате приложение не имеет прямого доступа к этим свойствам. Приложение имеет доступ к этим свойствам только через методы получения / установки .
Это правильное решение?