Perbedaan Public, Private, Dan Protected Dalam Oop
Dalam OOP terdapat tiga prinsip utama ialah Encapsulation (enkapsulasi) atau yang dikenal juga sebagai information hiding. Kita mampu menentukan aksesibilitas apakah suatu method atau variabel dari suatu kelas mampu diakses atau dimodifikasi oleh kelas lain.
Umumnya OOP punya tiga modifier yang mengatur aksesibilitas dari method dan variabel, ialah private, protected, dan public. Nah, dari namanya udah ketauan kan mana yang paling rahasia?
Modifier public
Public artinya kelas, method, maupun variabel yang memiliki modifier ini mampu diakses oleh semua class, baik yang ada di packet itu maupun yang bukan. Modifier ini juga mengatakan jalan masuk kepada objek yang diinstans (dibentuk) di kelas tersebut.
Modifier private
Private artinya kelas, method, ataupun variabel yang memiliki modifier ini cuma mampu diakses oleh kelas itu sendiri. Kelas lain, maupun objek yang dibuat oleh kelas lain sama sekali tidak punya jalan masuk method, kelas, maupun variabel dengan modifier private.
Nah, sifat tertutup full dari private ini tidak memandang apakah si kelas lain yang ingin memanggil method, kelas, atau variabel ini dari packet yang sama atau bukan, tetep tidak diberikan akses. Karena sifatnya inilah, maka method/var private tidak mampu diwariskan ke subkelas.
Diantara method dan variabel yang paling sering dideklarasiin sebagai private ialah variabel. Kenapa? Karena :
1. Biasanya masing-masing kelas itu punya variabel sendiri-sendiri jadi ga perlu memanggil variable dari kelas lain.
2. Melindungi supaya variabel tertentu dari kemungkinan berubah nilainya bila diakses oleh method dari kelas yang berbeda.
Modifier protected
Sama halnya mirip private, protected juga membatasi jalan masuk terhadap method/variabel/kelas, namun tidak bersifat total. Modifier ini biasanya digunakan untuk membatasi jalan masuk terhadap:
Umumnya OOP punya tiga modifier yang mengatur aksesibilitas dari method dan variabel, ialah private, protected, dan public. Nah, dari namanya udah ketauan kan mana yang paling rahasia?
Public artinya kelas, method, maupun variabel yang memiliki modifier ini mampu diakses oleh semua class, baik yang ada di packet itu maupun yang bukan. Modifier ini juga mengatakan jalan masuk kepada objek yang diinstans (dibentuk) di kelas tersebut.
Modifier private
Private artinya kelas, method, ataupun variabel yang memiliki modifier ini cuma mampu diakses oleh kelas itu sendiri. Kelas lain, maupun objek yang dibuat oleh kelas lain sama sekali tidak punya jalan masuk method, kelas, maupun variabel dengan modifier private.
Nah, sifat tertutup full dari private ini tidak memandang apakah si kelas lain yang ingin memanggil method, kelas, atau variabel ini dari packet yang sama atau bukan, tetep tidak diberikan akses. Karena sifatnya inilah, maka method/var private tidak mampu diwariskan ke subkelas.
Diantara method dan variabel yang paling sering dideklarasiin sebagai private ialah variabel. Kenapa? Karena :
1. Biasanya masing-masing kelas itu punya variabel sendiri-sendiri jadi ga perlu memanggil variable dari kelas lain.
2. Melindungi supaya variabel tertentu dari kemungkinan berubah nilainya bila diakses oleh method dari kelas yang berbeda.
BACA JUGA : "Masih Bingung Membedakan For, Foreach dan teman-temannya? Yuk Kenalan!"
Modifier protected
Sama halnya mirip private, protected juga membatasi jalan masuk terhadap method/variabel/kelas, namun tidak bersifat total. Modifier ini biasanya digunakan untuk membatasi jalan masuk terhadap:
- Subkelas dari suatu kelas
- Kelas lain dari packet yang sama
Berikut tabel ringkasan aksesibilitas dari masing-masing modifier
Aksesibilitas | public | private | protected |
Dari kelas yang sama | Ya | Ya | Ya |
Dari kelas yang berada dalam packet yang sama | Ya | Tidak | Ya |
Dari kelas di luar package | Ya | Tidak | Tidak |
Dari subkelas dalam packet yang sama | Ya | Tidak | Ya |
Dari subkelas di luar package | Ya | Tidak | Ya |
Kalau aku sih yang paling sering aku pake ialah private sama public. Kalo pake private biasanya buat menjaga nilai suatu var biar ga berubah kalo diakses method dari kelas lain.
Gimana? Udah mulai paham belom? :D Kalau ada pertanyaan, kritik, atau saran, silahkan tulis di kolom komentar. Semoga gesekan pena ini bermanfaat, dan terakhir, terima kasih :D
Belum ada Komentar untuk "Perbedaan Public, Private, Dan Protected Dalam Oop"
Posting Komentar