Visibility Modifiers – Kotlin

Biasanya tidak semua function atau class dibuat untuk public API. Oleh karena itu, perlu didefinisikan bahwa bagian dari code tidak bisa diakses dari luar class atau package, inilah yang disebut visibility modifier. Ada empat modifier yang bisa digunakan yaitu public, internal, protected dan private. Jika tidak disebutkan secara explicit maka default modifier adalah public. Artinya class atau function tersebut bisa diakses dari manapun baik dari dalam class/package maupun yang tidak dalam satu class/package.

Private

Semua top-level function, class atau interface yang didefinisikan sebagai private hanya bisa diakses dari file yang sama.

Dalam sebuah class, interface atau object semua private function atau property hanya bisa diakses oleh function/property dari class, interface atau object yang sama:

Sebagai contoh, fungsi age()  hanya bisa diakses oleh fungsi atau property dalam satu class Person

Protected

Protected tidak bisa didefinisikan pada top-level class, interface dan object. Semua fungsi atau property yang didefinisikan protected maka hanya bisa diakses dari dalam class atau subclass.

Internal

Internal ini secara sederhana bisa diartikan sebagai “public dalam sebuah module”. Artinya class maupun fungsi hanya bisa diakses oleh class dalam satu module.

 

 

abhiemanyu