Junior
Ինչպե՞ս է իրականացնում Kotlin-ում ինկապսուլյացիան։
sobes.tech AI
Պատասխան AI-ից
Kotlin-ում ինկապսուլյացիան հասնում է մուտքագրման մոդիֆիկատորների և հատկությունների միջոցով:
Մուտքագրման մոդիֆիկատորներ՝
public: հասանելի է ամենուր (նույնը՝ ըստ նախնական կարգի):internal: հասանելի է նույն մոդուլում:protected: հասանելի է իր դասում և նրա ենթակլասներում:private: հասանելի է միայն այն դասում, որտեղ հայտարարվել է:
Հատկությունները օգտագործվում են դասի տվյալների մուտքը կառավարելու համար: Դրանք կարող են ունենալ getter և setter, որոնք կարելի է վերագրել՝ ավելացնելու համար տրամաբանություն արժեքի ընթերցման կամ գրելու ժամանակ:
class Person {
// Անձնական դաշտ, հասանելի միայն դասի ներսում
private var _name: String = ""
// Հատկություն՝ հանրային getter և մասնավոր setter
var name: String
get() = _name
private set(value) {
_name = value
}
// Հանրային ֆունկցիա անունը սահմանելու համար, վերահսկում է մուտքը
fun setName(newName: String) {
if (newName.isNotBlank()) {
name = newName
} else {
println("Անունը չի կարող լինել դատարկ")
}
}
}
fun main() {
val person = Person()
person.setName("Alice") // Օգտագործում ենք վերահսկվող մեթոդը փոփոխության համար
println(person.name) // Կարդում ենք արժեքը getter-ով
// person.name = "Bob" // Կոմպիլյացիայի սխալ, setter-ը մասնավոր է
}