Junior
რა შეგიძლია თქვა Kotlin-ის თვისებებზე და ასევე get და set მეთოდებზე?
sobes.tech AI
პასუხი AI-სგან
Kotlin-ში მტკიცებულებები წარმოადგენს ფილის და შესაბამისი გეტერის და სეტერის კომბინაციას.
მტკიცებულების განსაზღვრა:
class MyClass {
var mutableProperty: String = "default"
val immutableProperty: Int = 10
}
აქ mutableProperty არის შეცვლადი მტკიცებულება, რომელსაც აქვს გეტერი და სეტერი ავტომატურად. immutableProperty არის შეუცვლელი მტკიცებულება, მხოლოდ გეტერით.
განსაზღვრული გეტერის და სეტერის დაწერა:
class MyClass {
var customProperty: String = ""
get() = field.toUpperCase() // მომხმარებლის გეტერი
set(value) {
field = value.toLowerCase() // მომხმარებლის სეტერი
}
val computedProperty: Int
get() = (1..10).random() // გამოთვლადი მტკიცებულება, არ აქვს ფილი
}
field- მტკიცებულების ფილის მიმთითებელი გეტერის და სეტერის შიგნით. გამოიყენება მხოლოდ შეცვლად მტკიცებულებებზე (var).- გეტერები და სეტერები შეიძლება იყოს მორგებული, დამატებითი ლოგიკის შესატანად მტკიცებულების წვდომის ან ცვლილების დროს.
- გამოთვლადი მტკიცებულებები (
computedProperty) არ აქვთ საკუთარი ფილი და ყოველთვის გამოთვლიან მნიშვნელობას წვდომის დროს.
ძირითადი მახასიათებლები:
- Kotlin-ში არ არის საჭირო ყოველი ფილისთვის გეტერის და სეტერის აშენება, როგორც Java-ში. ისინი ავტომატურად იქმნება.
- მტკიცებულებები ხელმისაწვდომია წერტილის ნოტაციით (
instance.propertyName). - გამარტივებული გეტერის და სეტერის განსაზღვრა საშუალებას აძლევს დამატებითი ლოგიკის დამატებას.
valმტკიცებულების გეტერი ყოველთვის უნდა აბრუნებდეს იმავე ტიპის მნიშვნელობას.varმტკიცებულების სეტერი იღებს იმავე ტიპის პარამეტრს.
შედარება Kotlin-ის მტკიცებულებებს და Java-ის ფილებს + მეთოდებს:
| Kotlin მტკიცებულება | Java ფაილი + მეთოდები | აღწერა |
|---|---|---|
var myProperty: ტიპი |
private ტიპი myProperty; + public ტიპი getMyProperty() + public void setMyProperty(ტიპი მნიშვნელობა) |
შეცვლადი მტკიცებულება ავტომატური გეტერით და სეტერით. |
val myProperty: ტიპი |
private ტიპი myProperty; + public ტიპი getMyProperty() |
შეუცვლელი მტკიცებულება მხოლოდ გეტერით. |
| მორგებული გეტერი/სეტერი | ხელით დაწერილი ლოგიკა | მომხმარებლის ლოგიკის დამატება წვდომის ან ცვლილების დროს. |
| გამოთვლადი მტკიცებულება | მეთოდი, რომელიც აბრუნებს მნიშვნელობას | მნიშვნელობა ყოველ მოთხოვნაზე გამოთვლილია. |