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 | Հատուկ տրամաբանություն | Օգտագործողի տրամաբանության ավելացում։ |
| Հաշվվող հատկություն | Մեթոդ, որը վերադարձնում է արժեքը | Արժեքը հաշվարկվում է յուրաքանչյուր պահանջի ժամանակ։ |