Encapsulation di Java - Bagaimana cara menguasai OOP dengan Encapsulation?



Artikel mengenai Encapsulation in Java ini akan membantu anda memahami konsep teras menyembunyikan perincian pelaksanaan bersama dengan pelbagai contoh mudah.

Pengaturcaraan Berorientasikan Objek atau lebih dikenali sebagai OOP adalah salah satu tonggak utama Java yang telah memanfaatkan kekuatan dan kemudahan penggunaannya. Untuk menjadi pembangun Java profesional, anda mesti mempunyai kawalan yang sempurna dalam pelbagai suka , Pengambilan , Encapsulation, dan Polymorphism. Melalui media artikel ini, saya akan memberi anda gambaran lengkap mengenai salah satu konsep OOP yang paling penting iaitu Encapsulation di Java dan bagaimana ia dicapai.

Berikut adalah topik yang akan saya bincangkan dalam artikel ini:





Anda juga boleh melalui rakaman ini di mana anda dapat memahami topik secara terperinci dengan contoh.



Pengenalan Encapsulation

Encapsulation merujuk kepada pengumpulan data di bawah satu unit. Mekanisme yang mengikat kod dan data yang dimanipulasinya. Cara lain untuk memikirkan enkapsulasi adalah, ia adalah pelindung pelindung yang menghalang data daripada diakses oleh kod di luar perisai ini. Dalam ini, pemboleh ubah atau data a tersembunyi dari kelas lain dan boleh diakses hanya melalui fungsi anggota kelas sendiri di mana mereka diisytiharkan.

Sekarang, mari kita ambil contoh kapsul perubatan, di mana ubat sentiasa selamat di dalam kapsul. Begitu juga, melalui enkapsulasi, kaedah dan pemboleh ubah kelas tersembunyi dan selamat.



Encapsulation -Encapsulation di Java-EdurekaEncapsulation di Java dapat dicapai dengan:

seni bina mvc di java dengan contoh
  • Menyatakan pemboleh ubah kelas sebagai peribadi.
  • Menyediakan kaedah setter dan getter awam untuk mengubah dan melihat nilai pemboleh ubah.

Sekarang, mari lihat kod untuk mendapatkan pemahaman yang lebih baik mengenai enkapsulasi:

kelas awam Pelajar {private String name public String getName () {return name} public void setName (String name) {this.name = name}} kelas Test {public static void main (String [] args) {Pelajar s = pelajar baru () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Seperti yang anda lihat dalam kod di atas, saya telah membuat Pelajar kelas yang mempunyai peribadi nama . Seterusnya, saya telah membuat getter dan setter untuk mendapatkan dan menetapkan nama pelajar. Dengan bantuan kaedah ini, mana-mana kelas yang ingin mengakses pemboleh ubah nama mesti melakukannya menggunakan kaedah getter dan setter ini.

Sekarang mari kita lihat satu lagi contoh dan memahami Encapsulation secara mendalam. Dalam contoh ini, kelas Kereta mempunyai dua medan –name dan topSpeed. Di sini, kedua-duanya diisytiharkan sebagai peribadi, yang bermaksud mereka tidak dapat diakses secara langsung di luar kelas. Kami mempunyai beberapa kaedah getter dan setter seperti getName, setName, setTopSpeed ​​dll, dan ia dinyatakan sebagai umum. Kaedah ini terdedah kepada 'orang luar' dan dapat digunakan untuk mengubah dan mengambil data dari objek Mobil. Kami mempunyai satu kaedah untuk menetapkan kelajuan tertinggi kenderaan dan dua kaedah mendapatkan untuk mendapatkan nilai kelajuan maksimum sama ada dalam MPH atau KMHt. Jadi pada dasarnya, inilah yang dilakukan enkapsulasi - ia menyembunyikan pelaksanaan dan memberi kita nilai yang kita mahukan. Sekarang, mari lihat kod di bawah.

pakej Edureka kelas awam Kereta {private String name private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} public double getTopSpeedMPH () {return topSpeed} public double getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Di sini, program utama membuat objek Car dengan nama tertentu dan menggunakan kaedah setter untuk menyimpan kelajuan tertinggi untuk kejadian ini. Dengan melakukan ini, kita dapat memperoleh kelajuan dalam MPH atau KMH dengan mudah tanpa mengambil berat tentang bagaimana kelajuan ditukar di kelas Kereta.

pakej kelas awam Edureka Contoh {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-liter V8') car.setTopSpeed ​​(201) System.out.println (kereta. getName () + 'kelajuan tertinggi dalam MPH adalah' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'kelajuan teratas dalam KMH adalah' + car.getTopSpeedKMH ())

So, inilah cara Encapsulation dapat dicapai di Java. Sekarang, mari kita bergerak lebih jauh dan lihat mengapa kita memerlukan Encapsulation.

Mengapa kita memerlukan Encapsulation di Java?

Encapsulation sangat penting di Java kerana:

  • Ia mengawal cara kebolehaksesan data
  • Mengubah kod berdasarkan keperluan
  • Membantu kita untuk mencapai pasangan yang longgar
  • Mencapai kesederhanaan aplikasi kami
  • Ini juga membolehkan anda mengubah bahagian kod tersebut tanpa mengganggu fungsi atau kod lain yang terdapat dalam program ini

Sekarang, mari kita pertimbangkan contoh kecil yang menggambarkan perlunya enkapsulasi.

Pelajar kelas {int id String name} kelas awam Demo {public static void main (String [] args) {Pelajar s = Pelajar baru () s.id = 0 s.name = '' s.name = null}}

Dalam contoh di atas, ia mengandungi dua pemboleh ubah contoh sebagai pengubah akses. Jadi mana-mana kelas dalam pakej yang sama dapat menetapkan dan mengubah nilai pemboleh ubah tersebut dengan membuat objek kelas itu. Oleh itu, kita tidak mempunyai kawalan ke atas nilai yang disimpan di kelas Pelajar sebagai pemboleh ubah. Untuk menyelesaikan masalah ini, kami merangkum kelas Pelajar.

Jadi, ini adalah beberapa petunjuk yang menggambarkan keperluan Encapsulation. Sekarang, mari kita lihat beberapa faedah enkapsulasi.

Faedah Encapsulation

    • Penyembunyian Data: Di sini, pengguna tidak akan mempunyai idea mengenai pelaksanaan dalaman kelas. Malah pengguna tidak akan menyedari bagaimana kelas menyimpan nilai dalam pemboleh ubah. Dia hanya akan menyedari bahawa kita meneruskan nilai ke kaedah setter dan pemboleh ubah dimulakan dengan nilai tersebut.
    • Fleksibiliti meningkat: Di sini, kita boleh menjadikan pemboleh ubah kelas sebagai hanya baca atau tulis sahaja bergantung pada keperluan kita. Sekiranya anda ingin menjadikan pemboleh ubah sebagai hanya baca maka kita harus menghilangkan kaedah setter seperti setName (),setAge() dll atau jika kita ingin menjadikan pemboleh ubah sebagai hanya tulis maka kita harus menghilangkan kaedah get seperti getName (), getAge () dll dari program di atas.
    • Kebolehgunaan semula: Ia juga meningkatkan kegunaan semula dan mudah diubah dengan keperluan baru.

Setelah kita memahami asas-asas enkapsulasi, mari kita selami topik terakhir artikel ini dan memahami Encapsulation secara terperinci dengan bantuan contoh masa nyata.

Contoh Encapsulation Masa Nyata

Mari kita perhatikan contoh televisyen dan fahami bagaimana perincian pelaksanaan dalaman disembunyikan dari kelas luar.Pada asasnya, dalam contoh ini, kita menyembunyikan data kod dalaman iaitu litar dari dunia luar dengan penutup. Sekarang masuk , ini dapat dicapai dengan bantuan pengubah akses. Pengubah akses menetapkan akses atau tahap kelas, pemboleh ubah pembina dll. Seperti yang anda lihat dalam kod di bawah, saya telah menggunakan pengubah akses peribadi untuk menyekat tahap akses kelas. Pemboleh ubah yang dinyatakan sebagai peribadi hanya boleh diakses dalam kelas Televisyen.

Televisyen kelas awam {private double width private double height private double Screensize private int maxVolume print int volume private boolean power Televisyen awam (lebar ganda, tinggi dua kali ganda, ukuran dua skrin) {this.width this.height this.screenSize = ScreenSize} saluran dua awamTuning (saluran int) {switch (channel) {case1: return 34.56 case2: return 54.89 case3: return 73.89 case1: return 94.98} return 0} public int penurunanVolume () {if (0volume) volume ++ return volume}} ujian kelas {public static void main (String args []) {Televisyen t = televisyen baru (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televisyen. // Ralat melemparkan kerana pemboleh ubah bersifat peribadi dan tidak dapat diakses di luar kelas}}

Dalam contoh di atas, saya telah menyatakan semua pemboleh ubah sebagai peribadi dan kaedah, pembina dan kelas sebagai umum. Di sini, kaedah konstruktor boleh diakses di luar kelas. Semasa saya membuatsebuah objekdari kelas Televisyen, ia dapat mengakses kaedah dan konstruktor yang ada di kelas, sedangkan pemboleh ubah yang dinyatakan dengan pengubah akses peribadi disembunyikan. Itulah sebabnya apabila anda cuba mengakses pemboleh ubah lebar dalam contoh di atas, ia melemparkankesilapan. Begitulah perincian pelaksanaan dalaman disembunyikan dari kelas lain. Ini adalah bagaimana Encapsulation dicapai di Java.

Ini membawa kita ke akhir artikel ini tentang 'Encapsulation in Java'. Mudah-mudahan, anda dapati maklumat dan membantu menambah nilai pengetahuan anda. Sekiranya anda ingin mempelajari lebih lanjut mengenai Java, anda dapat merujuk ke

Sekarang setelah Anda memahami 'apa itu Encapsulation di Java', periksa oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java. Kursus ini dirancang untuk memberi Anda awal dalam pengaturcaraan Java dan melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog 'Encapsulation in Java' ini dan kami akan menghubungi anda secepat mungkin.