Dynamic Blinkie Text Generator at TextSpace.net

Feedburner

I heart FeedBurner

Selasa, 14 November 2017

Public, Private, dan Protected OOP

Dalam OOP terdapat tiga prinsip utama yaitu Encapsulation (enkapsulasi) atau yang dikenal juga sebagai information hiding. Kita bisa menentukan aksesibilitas apakah suatu method atau variabel dari suatu kelas bisa diakses atau dimodifikasi oleh kelas lain.
Umumnya OOP punya tiga modifier yang mengatur aksesibilitas dari method dan variabel, yaituprivate, 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 bisa diakses oleh semua class, baik yang ada di package itu maupun yang bukan. Modifier ini juga memberikan akses kepada objek yang diinstans (dibentuk) di kelas tersebut.

Modifier private
Private artinya kelas, method, ataupun variabel yang memiliki modifier ini cuma bisa diakses oleh kelas itu sendiri. Kelas lain, maupun objek yang dibentuk oleh kelas lain sama sekali tidak punya akses method, kelas, maupun variabel dengan modifier private. 
Nah, sifat tertutup total dari private ini tidak memandang apakah si kelas lain yang ingin memanggil method, kelas, atau variabel ini dari package yang sama atau bukan, tetep tidak diberikan akses. Karena sifatnya inilah, maka method/var private tidak bisa diwariskan ke subkelas.
Diantara method dan variabel yang paling sering dideklarasiin sebagai private adalah 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 jika diakses oleh method dari kelas yang berbeda.

Modifier protected 
Sama halnya seperti private, protected juga membatasi akses terhadap method/variabel/kelas, namun tidak bersifat total. Modifier ini biasanya digunakan untuk membatasi akses terhadap:
  • Subkelas dari suatu kelas
  • Kelas lain dari package 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 package yang sama
Ya
Tidak
Ya
Dari kelas di luar package
Ya
Tidak
Tidak
Dari subkelas dalam package yang sama
Ya
Tidak
Ya
Dari subkelas di luar package
Ya
Tidak
Ya


Kalau aku sih yang paling sering aku pake adalah private sama public. Kalo pake privatebiasanya buat menjaga nilai suatu var biar ga berubah kalo diakses method dari kelas lain.

Tidak ada komentar:

Posting Komentar