Pengubah Visibilitas Kotlin

Dalam artikel ini, Anda akan mempelajari tentang 4 pengubah visibilitas di Kotlin dan cara kerjanya dalam skenario yang berbeda.

Pengubah visibilitas adalah kata kunci yang mengatur visibilitas (aksesibilitas) kelas, objek, antarmuka, konstruktor, fungsi, properti, dan penyetelnya. (Anda tidak dapat menyetel pengubah visibilitas getter karena mereka selalu mengambil visibilitas yang sama seperti visibilitas properti.)

Dalam artikel Kotlin Class and Objects, Anda mempelajari tentang pengubah visibilitas publicdan privatesecara singkat. Anda akan belajar tentang dua pengubah visibilitas lagi protecteddan internal(serta publicdan private) secara detail.

Pengubah Visibilitas Di Dalam Paket

Paket mengatur satu set fungsi, properti dan kelas, objek, dan antarmuka terkait. Bacaan yang disarankan: Paket Kotlin

Pengubah Deskripsi
publik deklarasi terlihat di mana-mana
pribadi terlihat di dalam file yang berisi deklarasi
intern terlihat di dalam modul yang sama (sekumpulan file Kotlin yang dikompilasi bersama)
terlindung tidak tersedia untuk paket (digunakan untuk subclass)

Catatan: Jika pengubah visibilitas tidak ditentukan, ini publicsecara default.

Mari kita ambil contoh:

 // nama file: hello.kt paket uji menyenangkan function1 () () // publik secara default dan terlihat di mana-mana kesenangan pribadi function2 () () // terlihat di dalam hello.kt kesenangan internal function3 () () // terlihat di dalam modul yang sama var name = "Foo" // terlihat di mana-mana get () = field // terlihat di dalam hello.kt (sama dengan propertinya) set privat (nilai) (// terlihat di dalam hello.kt field = value) kelas privat class1 () // terlihat di dalam hello.kt

Pengubah Visibilitas Di Dalam Kelas dan Antarmuka

Berikut cara kerja pengubah visibilitas untuk anggota (fungsi, properti) yang dideklarasikan di dalam kelas:

Pengubah Deskripsi
publik terlihat oleh semua klien yang dapat melihat kelas deklarasi
pribadi hanya terlihat di dalam kelas
terlindung terlihat di dalam kelas dan subkelasnya
intern terlihat oleh klien mana pun di dalam modul yang dapat melihat kelas deklarasi

Catatan: Jika Anda mengganti protectedanggota di kelas turunan tanpa menentukan visibilitasnya, visibilitasnya juga akan protected.

Mari kita ambil contoh:

 open class Base () (var a = 1 // public secara default private var b = 2 // private to Base class protected open val c = 3 // terlihat oleh Base dan Derived class internal val d = 4 // visible di dalam modul yang sama dilindungi fun e () () // terlihat oleh Base dan kelas Derived) kelas Derived: Base () (// a, c, d, dan e () dari kelas Base terlihat // b tidak terlihat, override val c = 9 // c terlindungi) fun main (args: Array) (val base = Base () // base.a dan base.d terlihat // base.b, base.c dan base .e () tidak terlihat val turunan = Derived () // turunan.c tidak terlihat) 

Mengubah Visibilitas Konstruktor

Secara default, visibilitas konstruktor adalah public. Namun, Anda bisa mengubahnya. Untuk itu, Anda perlu menambahkan constructorkata kunci secara eksplisit .

Konstruktor secara publicdefault pada contoh di bawah ini:

 class Test (val a: Int) (// code) 

Inilah cara Anda dapat mengubah visibilitasnya.

 kelas Uji konstruktor pribadi (val a: Int) (// kode)

Di sini konstruktornya private.

Catatan: Di Kotlin, fungsi, variabel, dan kelas lokal tidak dapat memiliki pengubah visibilitas.

Artikel yang menarik...