Enkapsulasi adalah cara mengorganisasi data dan metode ke dalam suatu struktur. Di saat yang sama, enkapsulasi mencegah akses ke data tersebut dengan cara apapun, selain dengan metode yang telah ditentukan. Dengan begitu, konsep enkapsulasi menjamin integritas data yang terdapat dalam suatu objek.
Pengguna dengan kelas tertentu tidak perlu tahu bagaimana struktur data dalam sebuah objek. Hal ini berarti bahwa pengguna tidak perlu mengetahui bagaimana proses implementasi berlangsung. Dengan mencegah pengguna dari memodifikasi secara langsung, pengguna sebaliknya diharuskan untuk menggunakan fungsi yang telah didefinisikan untuk memodifikasi (interface) lebih dulu. Sehingga integritas data dapat dipastikan.
Konsep enkapsulasi mendefinisikan akses di setiap tingkat dan unsur-unsur dari setiap class. Tingkatan akses tersebut mendefinisikan hak akses ke data. Juga memungkinkan pengguna untuk mengakses data, dengan metode yang ditetapkan untuk kelas tertentu itu sendiri, dari sebuah inheritance class, atau bahkan dari kelas lain. Ada tiga tingkatan akses:
Publik: fungsi dari semua kelas dapat mengakses data atau metode kelas yang didefinisikan dengan tingkat akses publik. Kelas ini memiliki tingkat perindungan terendah.
Dilindungi: akses data ini dibatasi untuk beberapa inheritance kelas, biasanya hanya untuk anggota dari kelas itu sendiri dan bagi anggota kelas.
Pribadi: akses data dibatasi oleh metode yang digunakan dan berasal dari kelas tertentu saja. Kelas ini memiliki tingkat perlindungan data tertinggi.
Image © Maksim M - Shutterstock.com