Junior
Kuo skiriasi įprasti ir išplėstiniai metodai Kotlin?
sobes.tech AI
Atsakymas iš AI
Įprastas metodas yra funkcija, deklaruota klasės viduje.
Plėtojantis metodas yra funkcija, deklaruota už klasės ribų, tačiau veikia tarsi būtų jos narys. Deklaruojant plėtojantį metodą, nurodomas gavėjo klasės pavadinimas, kuriai jis taikomas.
// Įprastas metodas
class MyClass {
fun myMethod() {
// metodo įgyvendinimas
}
}
// Plėtojantis metodas
fun String.removeVowels(): String {
// metodo įgyvendinimas
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // Įprasto metodo kvietimas
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // Plėtojancio metodo kvietimas
}
Pagrindiniai skirtumai:
- Deklaravimas: Įprasti metodai deklaruojami klasės viduje, plėtojantys — už jos.
- Prieiga prie klasės narių: Įprasti metodai turi tiesioginę prieigą prie
privateirprotectednarių. Plėtojantys metodai neturi tiesioginės prieigos prieprivateirprotectednarių. this: Įprasto metodothisnurodo klasės egzempliorių, kuriame metodas deklaruotas. Plėtojant,thisnurodo gavėjo objekto egzempliorių, kuriam kviečiama plėtra.- Paveldėjimas: Įprasti metodai gali būti perrašyti pogrupiuose. Plėtojantys metodai nėra paveldimi ir jų perrašyti negalima.
- Įgyvendinimas: Įprasti metodai yra klasės įgyvendinimo dalis. Plėtojantys metodai įgyvendinami atskirai ir nekeičia originalios klasės.
Plėtojantys metodai naudingi, norint pridėti funkcionalumą prie esamų klasių be jų modifikavimo, pavyzdžiui, prie išorinių bibliotekų klasių arba Kotlin standartinės bibliotekos.