Encapsulation Java

Dalam tutorial ini, anda akan belajar mengenai enkapsulasi dan penyembunyian data di Java dengan bantuan contoh.

Encapsulation Java

Encapsulation adalah salah satu ciri utama pengaturcaraan berorientasikan objek. Encapsulation merujuk kepada kumpulan bidang dan kaedah dalam satu kelas.

Ini menghalang kelas luar untuk mengakses dan menukar bidang dan kaedah kelas. Ini juga membantu mencapai penyembunyian data .

Contoh 1: Encapsulation Java

 class Area ( // fields to calculate area int length; int breadth; // constructor to initialize values Area(int length, int breadth) ( this.length = length; this.breadth = breadth; ) // method to calculate area public void getArea() ( int area = length * breadth; System.out.println("Area: " + area); ) ) class Main ( public static void main(String() args) ( // create object of Area // pass value of length and breadth Area rectangle = new Area(5, 6); rectangle.getArea(); ) )

Pengeluaran

 Kawasan: 30

Dalam contoh di atas, kami telah membuat kelas bernama Area. Tujuan utama kelas ini adalah untuk mengira luas.

Untuk mengira kawasan, kita perlu dua pembolehubah: panjang dan keluasan dan kaedah yang: getArea(). Oleh itu, kami menggabungkan bidang dan kaedah ini dalam satu kelas.

Di sini, bidang dan kaedah boleh diakses dari kelas lain juga. Oleh itu, ini bukan penyembunyian data .

Ini hanya enkapsulasi . Kami hanya menyimpan kod yang serupa.

Catatan : Orang sering menganggap enkapsulasi sebagai penyembunyian data, tetapi itu tidak sepenuhnya benar.

Encapsulation merujuk kepada gabungan bidang dan kaedah yang berkaitan bersama. Ini boleh digunakan untuk mencapai penyembunyian data. Encapsulation dengan sendirinya bukanlah penyembunyian data.

Mengapa Encapsulation?

  • Di Java, enkapsulasi membantu kita untuk menyimpan bidang dan kaedah yang berkaitan, yang menjadikan kod kita lebih bersih dan mudah dibaca.
  • Ia membantu mengawal nilai bidang data kami. Sebagai contoh,
     class Person ( private int age; public void setAge(int age) ( if (age>= 0) ( this.age = age; ) ) )

    Di sini, kami membuat pemboleh ubah usia privatedan menerapkan logik dalam setAge()kaedah ini. Sekarang, usia tidak boleh menjadi negatif.
  • Kaedah getter dan setter menyediakan akses baca sahaja atau tulis sahaja ke medan kelas kami. Sebagai contoh,
     getName() // provides read-only access setName() // provides write-only access
  • Ia membantu mencabut komponen sistem. Sebagai contoh, kita dapat merangkum kod menjadi beberapa kumpulan.
    Komponen yang dipisahkan ini (bundle) dapat dikembangkan, diuji, dan debug secara bebas dan serentak. Dan, sebarang perubahan pada komponen tertentu tidak memberi kesan kepada komponen lain.
  • Kami juga dapat mencapai penyembunyian data menggunakan enkapsulasi. Dalam contoh di atas, jika kita mengubah pemboleh ubah panjang dan lebar menjadi peribadi, maka akses ke medan ini adalah terhad.
    Dan, mereka tersembunyi dari kelas luar. Ini dipanggil penyembunyian data .

Penyembunyian Data

Penyembunyian data adalah cara untuk menyekat akses ahli data kami dengan menyembunyikan perincian pelaksanaan. Encapsulation juga menyediakan cara untuk menyembunyikan data.

Kita boleh menggunakan pengubah akses untuk mencapai penyembunyian data. Sebagai contoh,

Contoh 2: Penyembunyian data menggunakan penentu peribadi

 class Person ( // private field private int age; // getter method public int getAge() ( return age; ) // setter method public void setAge(int age) ( this.age = age; ) ) class Main ( public static void main(String() args) ( // create an object of Person Person p1 = new Person(); // change age using setter p1.setAge(24); // access age using getter System.out.println("My age is " + p1.getAge()); ) )

Pengeluaran

 Umur saya 24 tahun

Dalam contoh di atas, kita mempunyai privateusia ladang. Oleh kerana ia privatetidak dapat diakses dari luar kelas.

Untuk mencapai usia, kami telah menggunakan publickaedah: getAge()dan setAge(). Kaedah ini dipanggil kaedah getter dan setter.

Menjadikan usia menjadi peribadi membolehkan kami menyekat akses tanpa izin dari luar kelas. Ini adalah penyembunyian data .

Sekiranya kita cuba mengakses bidang umur dari kelas Utama, kita akan mendapat ralat.

 // error: age has private access in Person p1.age = 24;

Artikel menarik...