Sobes.tech
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-ը մասնավոր է
}