Enkapsulasi di Jawa adalah mekanisme untuk membungkus variabel (data) dan metode (kode) bersama-sama sebagai satu unit. Ini adalah proses menyembunyikan detail informasi dan melindungi data dan perilaku objek. Ini adalah salah satu dari empat konsep OOP yang penting. Kelas enkapsulasi mudah untuk diuji, jadi juga lebih baik untuk pengujian unit.
Dalam tutorial ini, Anda akan belajar-
Apa itu Enkapsulasi di Java?
Pelajari Enkapsulasi dengan Contoh
Penyembunyikan Data di Java
Metode Pengambil dan Penyetel di Java
Abstraksi vs. Enkapsulasi
Kelebihan Enkapsulasi di Java
Klik di sini jika video tidak dapat diakses
Pelajari Enkapsulasi dengan Contoh
Untuk memahami apa itu enkapsulasi secara rinci, pertimbangkan kelas rekening bank berikut dengan metode deposit dan show balance
class Account {
private int account_number;
private int account_balance;
public void show Data() {
//code to show data
}
public void deposit(int a) {
if (a < 0) {
//show error
} else
account_balance = account_balance + a;
}
}
Misalkan seorang hacker berhasil mendapatkan akses ke kode rekening bank Anda. Sekarang, dia mencoba menyetorkan jumlah -100 ke akun Anda dengan dua cara. Mari kita lihat metode atau pendekatan pertamanya.
Pendekatan 1: Dia mencoba menyetorkan jumlah yang tidak valid (misalnya -100) ke rekening bank Anda dengan memanipulasi kode.
Sekarang, pertanyaannya adalah – Apakah itu mungkin? Mari selidiki.
Biasanya, variabel dalam kelas ditetapkan sebagai "pribadi" seperti yang ditunjukkan di bawah ini. Itu hanya dapat diakses dengan metode yang ditentukan di kelas. Tidak ada kelas atau objek lain yang dapat mengaksesnya.
Jika anggota data bersifat pribadi, itu berarti hanya dapat diakses dalam kelas yang sama. Tidak ada kelas luar yang dapat mengakses data pribadi anggota atau variabel kelas lain.
Jadi dalam kasus kami, peretas tidak dapat menyetor jumlah -100 ke akun Anda.
Pendekatan 2 :Pendekatan pertama peretas gagal menyetor jumlah. Selanjutnya, ia mencoba melakukan deposit sejumlah -100 dengan menggunakan metode “deposit”.
Tetapi implementasi metode memiliki pemeriksaan untuk nilai negatif. Jadi pendekatan kedua juga gagal.
Dengan demikian, Anda tidak pernah mengekspos data Anda ke pihak eksternal. Yang membuat aplikasi Anda aman.
Seluruh kode dapat dianggap sebagai kapsul, dan Anda hanya dapat berkomunikasi melalui pesan. Oleh karena itu nama enkapsulasi.
Menyembunyikan Data di Java
Penyembunyikan Data di Java menyembunyikan variabel suatu kelas dari kelas lain. Itu hanya dapat diakses melalui metode kelas mereka saat ini. Ini menyembunyikan detail implementasi dari pengguna. Tetapi lebih dari menyembunyikan data, ini dimaksudkan untuk pengelolaan atau pengelompokan data terkait yang lebih baik.
Untuk mencapai tingkat enkapsulasi yang lebih rendah di Java, Anda dapat menggunakan pengubah seperti "dilindungi" atau "publik". Dengan enkapsulasi, pengembang dapat mengubah satu bagian kode dengan mudah tanpa memengaruhi bagian lain.
Getter dan Setter di Java
Pengambil dan Penyetel di Java adalah dua metode konvensional yang digunakan untuk mengambil dan memperbarui nilai variabel. Mereka terutama digunakan untuk membuat, memodifikasi, menghapus dan melihat nilai-nilai variabel. Metode penyetel digunakan untuk memperbarui nilai dan metode pengambil digunakan untuk membaca atau mengambil nilai. Mereka juga dikenal sebagai pengakses dan mutator.
Kode berikut adalah contoh metode pengambil dan penyetel:
class Account{
private int account_number;
private int account_balance;
// getter method
public int getBalance() {
return this.account_balance;
}
// setter method
public void setNumber(int num) {
this.account_number = num;
}
}
Pada contoh di atas, metode getBalance() adalah metode getter yang membaca nilai variabel account_balance dan metode setNumber() adalah metode setter yang menetapkan atau memperbarui nilai variabel account_number.
Abstraksi vs. Enkapsulasi
Seringkali enkapsulasi disalahpahami dengan Abstraksi. Ayo belajar-
Enkapsulasi lebih tentang “Bagaimana” mencapai suatu fungsi
Abstraksi lebih tentang "Apa" yang dapat dilakukan kelas.
Contoh sederhana untuk memahami perbedaan ini adalah ponsel. Di mana logika kompleks di papan sirkuit dikemas dalam layar sentuh, dan antarmuka disediakan untuk mengabstraksikannya.
Keuntungan Enkapsulasi di Java
Enkapsulasi mengikat data dengan fungsi terkaitnya. Di sini fungsionalitas berarti "metode" dan data berarti "variabel"
Jadi kami menyimpan variabel dan metode di satu tempat. Tempat itu adalah "kelas." Kelas adalah dasar untuk enkapsulasi.
Dengan Enkapsulasi Java, Anda dapat menyembunyikan (membatasi akses) ke anggota data penting dalam kode Anda, yang meningkatkan keamanan
Seperti yang telah kita bahas sebelumnya, jika anggota data dideklarasikan sebagai “private”, maka hanya dapat diakses dalam kelas yang sama. Tidak ada kelas luar yang dapat mengakses data anggota (variabel) kelas lain.
Namun, jika Anda perlu mengakses variabel ini, Anda harus menggunakan "pengambil" dan "penyetel" publik metode.