Junior
Kotlin-ში ჩვეულებრივი და გაფართოებადი მეთოდების განსხვავება რა არის?
sobes.tech AI
პასუხი AI-სგან
ჩვეულებრივი მეთოდი — ეს არის ფუნქცია, რომელიც გამოაცხადება კლასის შიგნით.
გაფართოებული მეთოდი — ეს არის ფუნქცია, რომელიც გამოაცხადება კლასის გარეთ, მაგრამ მოქმედებს ისე, როგორც მისი წევრი. გაცემის დროს, გაცემული კლასის სახელი მითითებულია, რომელსაც ის ეხება.
// ჩვეულებრივი მეთოდი
class MyClass {
fun myMethod() {
// მეთოდის განხორციელება
}
}
// გაფართოებული მეთოდი
fun String.removeVowels(): String {
// მეთოდის განხორციელება
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // ჩვეულებრივი მეთოდის გამოძახება
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // გაფართოებული მეთოდის გამოძახება
}
ძირითადი განსხვავებები:
- გამოცხადება: ჩვეულებრივი მეთოდები გამოაცხადება კლასის შიგნით, გაფართოებული — გარეთ.
- მომწვდომა კლასის წევრებზე: ჩვეულებრივი მეთოდები პირდაპირი წვდომა აქვთ
privateდაprotectedწევრებზე. გაფართოებული მეთოდები პირდაპირი წვდომა არ აქვთprivateდაprotectedწევრებზე. this: ჩვეულებრივ მეთოდში,thisმიუთითებს კლასის იმ ნიმუშზე, სადაც მეთოდი გამოაცხადა. გაფართოებულ მეთოდში,thisმიუთითებს იმ ობიექტის ნიმუშზე, რომლისთვისაც გამოიძახება გაფართოება.- მემკვიდრეობა: ჩვეულებრივი მეთოდები შეიძლება გადაწერილ იქნას ქვესინფაში. გაფართოებული მეთოდები არ მემკვიდრეობს და გადაწერილი ვერ იქნება.
- განხორციელება: ჩვეულებრივი მეთოდები ნაწილია კლასის განსახორციელების. გაფართოებული მეთოდები განახორციელებულია ცალკე და არ ცვლის თავდაპირველ კლასს.
გაფართოებული მეთოდები სასარგებლოა არსებული კლასების ფუნქციონალობის დამატებისთვის, მაგალითად, გარეგან ბიბლიოთეკების კლასებს ან Kotlin-ის სტანდარტულ ბიბლიოთეკას.