Sobes.tech
Junior

Ինչ կարող եք ասել Kotlin- ում հատկությունների և նաև get և set մեթոդների մասին?

sobes.tech AI

Պատասխան AI-ից

Կոտլինում հատկությունները ներկայացնում են դաշտի և համապատասխան getter և setter-ի համակցությունը:

Հատկության սահմանում՝

class MyClass {
    var mutableProperty: String = "default"
    val immutableProperty: Int = 10
}

Այստեղ mutableProperty — փոփոխական հատկություն, որի getter և setter-ը դյուրին են։ immutableProperty — անփոփոխ հատկություն, միայն getter-ով։

Հստակ սահմանում getter և setter:

class MyClass {
    var customProperty: String = ""
        get() = field.toUpperCase() // Օգտագործողի getter
        set(value) {
            field = value.toLowerCase() // Օգտագործողի setter
        }

    val computedProperty: Int
        get() = (1..10).random() // Հաշվվող հատկություն, առանց դաշտի
}
  • field — հղում է հատկության դաշտին getter և setter-ի ներսում։ Օգտագործվում է միայն փոփոխական հատկությունների դեպքում (var
  • Getter-ներն ու setter-ներն կարող են լինել հարմարեցված՝ լրացուցիչ տրամաբանություն կատարելու համար։
  • Հաշվվող հատկությունները (computedProperty) չունեն սեփական դաշտ և միշտ հաշվարկում են արժեքը։

Հիմնարար կետեր՝

  • Kotlin-ում անհրաժեշտ չէ հստակորեն ստեղծել getter և setter՝ յուրաքանչյուր դաշտի համար, ինչպես Java-ում։ Նրանք ավտոմատորեն ստեղծվում են։
  • Հատկությունները հասանելի են կետային նշանով (instance.propertyName
  • Հստակ սահմանում getter և setter թույլ է տալիս ավելացնել տրամաբանություն։
  • val հատկությունների getter-ները միշտ պետք է վերադարձնեն նույն տիպի արժեք։
  • var հատկությունների setter-ները ընդունում են նույն տիպի պարամետր։

Հատկությունների համեմատություն Kotlin և Java-ի դաշտերի + մեթոդների հետ՝

Kotlin հատկություն Java դաշտ + մեթոդներ Նկարագրություն
var myProperty: Type private Type myProperty; + public Type getMyProperty() + public void setMyProperty(Type value) Փոփոխական հատկություն՝ ավտոմատ getter և setter-ով։
val myProperty: Type private Type myProperty; + public Type getMyProperty() Անփոփոխ հատկություն՝ միայն getter-ով։
Հարմարեցված getter/ setter Հատուկ տրամաբանություն Օգտագործողի տրամաբանության ավելացում։
Հաշվվող հատկություն Մեթոդ, որը վերադարձնում է արժեքը Արժեքը հաշվարկվում է յուրաքանչյուր պահանջի ժամանակ։