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? 

  Sumber

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.


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

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel