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-ի ստանդարտ գրադարանի դասարաններին։