Apa itu Encapsulation di Java?
Encapsulation di Java adalah mekanisme untuk membungkus pemboleh ubah (data) dan kaedah (kod) bersama sebagai satu unit. Ini adalah proses menyembunyikan perincian maklumat dan melindungi data dan tingkah laku objek. Ini adalah salah satu daripada empat konsep penting OOP. Kelas enkapsulasi mudah diuji, jadi juga lebih baik untuk pengujian unit.
Dalam tutorial ini, anda akan belajar-
- Apa itu Encapsulation di Java?
- Belajar Encapsulation dengan Contoh
- Penyembunyian Data di Jawa
- Kaedah Getter dan Setter di Jawa
- Abstraksi vs Enkapsulasi
- Kelebihan Encapsulation di Java
Klik di sini jika video tidak dapat diakses
Belajar Encapsulation dengan Contoh
Untuk memahami apa itu enkapsulasi secara terperinci, pertimbangkan kelas akaun bank berikut dengan kaedah deposit dan baki
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;}}
Anggaplah penggodam berjaya mendapatkan akses ke kod akaun bank anda. Sekarang, dia cuba memasukkan sejumlah -100 ke dalam akaun anda dengan dua cara. Mari lihat kaedah atau pendekatan pertamanya.
Pendekatan 1: Dia cuba memasukkan jumlah yang tidak sah (katakanlah -100) ke dalam akaun bank anda dengan memanipulasi kodnya.
Sekarang, persoalannya - Adakah itu mungkin? Mari siasat.
Biasanya, pemboleh ubah dalam kelas ditetapkan sebagai "peribadi" seperti yang ditunjukkan di bawah. Ia hanya dapat diakses dengan kaedah yang ditentukan dalam kelas. Tidak ada kelas atau objek lain yang dapat mengaksesnya.
Sekiranya ahli data bersifat peribadi, ini bermakna ia hanya dapat diakses dalam kelas yang sama. Tidak ada kelas luar yang boleh mengakses ahli data peribadi atau pemboleh ubah kelas lain.
Oleh itu, penggodam tidak dapat mendepositkan jumlah -100 ke akaun anda.
Pendekatan 2 : Pendekatan pertama penggodam gagal mendepositkan jumlahnya. Seterusnya, dia berusaha melakukan deposit sejumlah -100 dengan menggunakan kaedah "deposit".
Tetapi pelaksanaan kaedah mempunyai nilai negatif. Jadi pendekatan kedua juga gagal.
Oleh itu, anda tidak pernah mendedahkan data anda kepada pihak luar. Yang menjadikan aplikasi anda selamat.
Keseluruhan kod boleh dianggap sebagai kapsul, dan anda hanya dapat berkomunikasi melalui mesej. Oleh itu nama encapsulation.
Penyembunyian Data di Jawa
Penyembunyian Data di Java menyembunyikan pemboleh ubah kelas dari kelas lain. Ia hanya boleh diakses melalui kaedah kelas semasa mereka. Ini menyembunyikan perincian pelaksanaan dari pengguna. Tetapi lebih daripada sekadar menyembunyikan data, ini dimaksudkan untuk pengelolaan atau pengelompokan data yang berkaitan dengan lebih baik.
Untuk mencapai tahap enkapsulasi yang lebih rendah di Java, anda boleh menggunakan pengubah seperti "dilindungi" atau "umum". Dengan enkapsulasi, pembangun dapat mengubah satu bahagian kod dengan mudah tanpa mempengaruhi bahagian lain.
Getter dan Setter di Java
Getter dan Setter di Java adalah dua kaedah konvensional yang digunakan untuk mengambil dan mengemas kini nilai pemboleh ubah. Mereka digunakan terutamanya untuk membuat, mengubah, menghapus dan melihat nilai pemboleh ubah. Kaedah setter digunakan untuk mengemas kini nilai dan kaedah getter digunakan untuk membaca atau mengambil nilai. Mereka juga dikenali sebagai aksesor dan mutator.
Kod berikut adalah contoh kaedah getter dan setter:
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;}}
Dalam contoh di atas, kaedah getBalance () adalah kaedah getter yang membaca nilai variabel account_balance dan setNumber () adalah kaedah setter yang menetapkan atau mengemas kini nilai untuk variabel account_number.
Abstraksi vs Enkapsulasi
Selalunya enkapsulasi disalahfahami dengan Abstraction. Jom belajar-
- Encapsulation lebih kepada "Bagaimana" untuk mencapai fungsi
- Abstraksi lebih kepada "Apa" yang dapat dilakukan oleh kelas.
Contoh mudah untuk memahami perbezaan ini ialah telefon bimbit. Di mana logik kompleks di papan litar dikemas dalam skrin sentuh, dan antara muka disediakan untuk mengaburkannya.
Kelebihan Encapsulation di Java
- Encapsulation mengikat data dengan fungsi yang berkaitan. Di sini fungsi bermaksud "kaedah" dan data bermaksud "pemboleh ubah"
- Oleh itu, kami menyimpan pemboleh ubah dan kaedah di satu tempat. Tempat itu adalah "kelas." Kelas adalah asas untuk enkapsulasi.
- Dengan Java Encapsulation, anda dapat menyembunyikan (menyekat akses) kepada anggota data kritikal dalam kod anda, yang meningkatkan keselamatan
- Seperti yang telah kita bincangkan sebelumnya, jika anggota data dinyatakan "peribadi", maka hanya dapat diakses dalam kelas yang sama. Tidak ada kelas luar yang dapat mengakses anggota data (pemboleh ubah) kelas lain.
- Walau bagaimanapun, jika anda perlu mengakses pemboleh ubah ini, anda harus menggunakan kaedah "getter" dan "setter" awam .