Junior
Kāda ir atšķirība starp parastajām un paplašināšanas metodēm Kotlin?
sobes.tech AI
Atbilde no AI
Parast metode ir funkcija, kas deklarēta klases iekšpusē.
Paplašināšanas metode ir funkcija, kas deklarēta ārpus klases, bet darbojas tā, it kā tā būtu tās locekle. Deklarējot paplašināšanas metodi, tiek norādīts saņēmēja klases nosaukums, kurai tā tiek piemērota.
// Parastā metode
class MyClass {
fun myMethod() {
// metodes īstenošana
}
}
// Paplašināšanas metode
fun String.removeVowels(): String {
// metodes īstenošana
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // Parastās metodes izsaukums
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // Paplašināšanas metodes izsaukums
}
Galvenās atšķirības:
- Deklarācija: Parastās metodes tiek deklarētas klases iekšpusē, paplašināšanas — ārpus tās.
- Piekļuve klases locekļiem: Parastās metodes tieši piekļūst
privateunprotectedlocekļiem. Paplašināšanas metodes tieši piekļūtprivateunprotectedlocekļiem nevar. this: Parastā metodēthisatsaucas uz klases eksemplāru, kurā metode ir deklarēta. Paplašināšanas metodēthisatsaucas uz saņēmēja objekta eksemplāru, kuram tiek izsaukta paplašināšana.- Mantošana: Parastās metodes var tikt pārrakstītas apakšklasēs. Paplašināšanas metodes netiek mantošanas un tās nevar pārrakstīt.
- Īstenošana: Parastās metodes ir daļa no klases īstenošanas. Paplašināšanas metodes tiek īstenotas atsevišķi un nemaina oriģinālo klasi.
Paplašināšanas metodes ir noderīgas, lai pievienotu funkcionalitāti esošajām klasēm bez to modifikācijas, piemēram, ārējo bibliotēku klasēm vai Kotlin standarta bibliotēkai.