Sobes.tech
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-ის სტანდარტულ ბიბლიოთეკას.