Dalam artikel ini, anda akan belajar tentang semua 4 pengubah penglihatan di Kotlin dan bagaimana ia berfungsi dalam senario yang berbeza.
Pengubah keterlihatan adalah kata kunci yang menetapkan keterlihatan (kebolehcapaian) kelas, objek, antara muka, pembina, fungsi, sifat dan penyusunnya. (Anda tidak dapat menetapkan pengubah penglihatan pengirim kerana mereka selalu melihat penglihatan yang sama dengan harta tanah.)
Dalam artikel Kotlin Class and Objects, anda mengetahui tentang pengubah penglihatan public
dan private
secara ringkas. Anda akan belajar mengenai dua pengubah penglihatan lagi protected
dan internal
(serta public
dan private
) secara terperinci.
Pakej Pengubah Penglihatan
Pakej mengatur sekumpulan fungsi, sifat dan kelas, objek, dan antara muka yang berkaitan. Bacaan yang disyorkan: Pakej Kotlin
Pengubah | Penerangan |
---|---|
awam | deklarasi dapat dilihat di mana-mana |
peribadi | kelihatan di dalam fail yang mengandungi deklarasi |
dalaman | kelihatan di dalam modul yang sama (satu set fail Kotlin disusun bersama) |
dilindungi | tidak tersedia untuk pakej (digunakan untuk subkelas) |
Catatan: Sekiranya pengubah penglihatan tidak ditentukan, ia public
secara lalai.
Mari kita ambil contoh:
// nama fail: hello.kt pakej fungsi mengasyikkan fungsi 1 () () // awam secara lalai dan kelihatan di mana-mana fungsi keseronokan peribadi2 () () // kelihatan di dalam fungsi keseronokan dalaman hello.kt3 () () // kelihatan di dalam modul modul yang sama nama = "Foo" // kelihatan di mana-mana get () = medan // dapat dilihat di dalam hello.kt (sama dengan hartanya) set peribadi (nilai) (// kelihatan di dalam bidang hello.kt = nilai) kelas kelas peribadi1 () // kelihatan di dalam hello.kt
Pengubah Penglihatan Dalam Kelas dan Antara Muka
Inilah cara pengubahsuaian penglihatan berfungsi untuk ahli (fungsi, sifat) yang dinyatakan dalam kelas:
Pengubah | Penerangan |
---|---|
awam | dapat dilihat oleh mana-mana pelanggan yang dapat melihat kelas pengisytiharan |
peribadi | kelihatan di dalam kelas sahaja |
dilindungi | kelihatan di dalam kelas dan subkelasnya |
dalaman | dapat dilihat oleh mana-mana pelanggan di dalam modul yang dapat melihat kelas pengisytiharan |
Catatan: Sekiranya anda mengatasi protected
ahli di kelas turunan tanpa menyatakan keterlihatannya, keterlihatannya juga akan protected
.
Mari kita ambil contoh:
kelas terbuka Pangkalan () (var a = 1 // awam secara lalai varian peribadi b = 2 // peribadi ke kelas Dasar dilindungi terbuka val c = 3 // dapat dilihat pada Pangkalan dan Derived kelas dalaman val d = 4 // kelihatan di dalam modul yang sama dilindungi keseronokan e () () // dapat dilihat pada kelas Base dan Derived) class Derived: Base () (// a, c, d, dan e () dari kelas Base kelihatan // b tidak kelihatan override val c = 9 // c dilindungi) fun main (args: Array) (val base = Base () // base.a dan base.d kelihatan // base.b, base.c dan base .e () tidak kelihatan val turunan = Berasal () // berasal.c tidak kelihatan)
Mengubah Penglihatan Pembina
Secara lalai, keterlihatan konstruktor adalah public
. Walau bagaimanapun, anda boleh mengubahnya. Untuk itu, anda perlu menambahkan constructor
kata kunci secara jelas .
Pembina public
secara lalai dalam contoh di bawah:
Ujian kelas (val a: Int) (// kod)
Inilah cara anda dapat mengubah keterlihatannya.
kelas Uji pembina peribadi (val a: Int) (// kod)
Inilah konstruktornya private
.
Catatan: Di Kotlin, fungsi, pemboleh ubah dan kelas tempatan tidak boleh mempunyai pengubah penglihatan.