Apa itu Enkapsulasi di Java?
Enkapsulasi di Java adalah mekanisme untuk membungkus variabel (data) dan metode (kode) bersama sebagai satu kesatuan. Ini adalah proses menyembunyikan detail informasi dan melindungi data dan perilaku objek. Ini adalah salah satu dari empat konsep OOP 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
- Menyembunyikan Data di Jawa
- Metode Getter dan Setter di Java
- Abstraksi vs. Enkapsulasi
- Keuntungan 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 deposito dan saldo
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} elseaccount_balance = account_balance + a;}}
Misalkan seorang peretas berhasil mendapatkan akses ke kode rekening bank Anda. Sekarang, dia mencoba menyetor sejumlah -100 ke akun Anda dengan dua cara. Mari kita lihat metode atau pendekatan pertamanya.
Pendekatan 1: Dia mencoba menyetor jumlah yang tidak valid (katakanlah -100) ke rekening bank Anda dengan memanipulasi kode.
Sekarang, pertanyaannya adalah - Apakah itu mungkin? Mari selidiki.
Biasanya, variabel di 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, artinya hanya dapat diakses dalam kelas yang sama. Tidak ada kelas luar yang dapat mengakses anggota data pribadi 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 tersebut. Selanjutnya, ia mencoba melakukan setoran sejumlah -100 dengan menggunakan metode "setoran".
Tetapi penerapan metode memeriksa nilai-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 Jawa
Menyembunyikan Data di Java menyembunyikan variabel 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 yang lain.
Getter dan Setter di Java
Getter dan Setter di Java adalah dua metode konvensional yang digunakan untuk mengambil dan memperbarui nilai variabel. Mereka terutama digunakan untuk membuat, memodifikasi, menghapus dan melihat 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 methodpublic int getBalance() {return this.account_balance;}// setter methodpublic void setNumber(int num) {this.account_number = num;}}
Pada contoh di atas, metode getBalance () adalah metode pengambil yang membaca nilai variabel saldo_kun dan metode setNumber () adalah metode penyetel yang menetapkan atau memperbarui nilai untuk variabel nomor_kun.
Abstraksi vs. Enkapsulasi
Seringkali enkapsulasi disalahpahami dengan Abstraksi. Mari belajar-
- Enkapsulasi lebih tentang "Bagaimana" mencapai suatu fungsionalitas
- 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 fungsi 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 kita bahas sebelumnya, jika anggota data dideklarasikan "pribadi", maka itu hanya dapat diakses di 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 metode "getter" dan "setter" publik .