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