Enkapsulasi dalam Pengaturcaraan Berorientasikan Objek
Encapsulation ialah konsep pengaturcaraan berorientasikan objek asas yang melibatkan data gabungan (medan) dan kaedah (fungsi) yang beroperasi pada data dalam satu unit, biasanya kelas. Ia mengehadkan akses terus kepada beberapa komponen objek, menjadikannya lebih mudah untuk mengekalkan dan melindungi kod.
Kebaikan Enkapsulasi
- Menyembunyikan Data: Keadaan dalaman disembunyikan daripada dunia luar dan akses dikawal melalui kaedah (pengambil dan penetap).
- Kebolehselenggaraan Kod yang Dipertingkat: Perubahan pada medan atau kaedah boleh dibuat tanpa menjejaskan kod luaran yang menggunakan kelas.
- Keselamatan Dipertingkat: Dengan mengehadkan akses terus ke medan, kami boleh mengesahkan dan melindungi data daripada keadaan tidak sah.
Contoh Kod: Enkapsulasi dalam Tindakan
// Encapsulation refers to restricting access of a class from the outside world public class Person { private String name; private String profession; private double height; private int ID; private int age; // Constructor public Person(String name, String profession, double height, int iD, int age) { this.name = name; this.profession = profession; this.height = height; ID = iD; this.age = age; } // Getters and setters for accessing private fields public String getName() { return name; } public void setName(String name) { this.name = name; } public String getProfession() { return profession; } public void setProfession(String profession) { this.profession = profession; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public int getID() { return ID; } public void setID(int iD) { ID = iD; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } // Main method to demonstrate encapsulation public static void main(String[] args) { Person myPerson = new Person("Robert", "doctor", 130.4, 39, 23); // Accessing private fields through getter methods System.out.println(myPerson.getName()); System.out.println(myPerson.getProfession()); System.out.println(myPerson.getID()); System.out.println(myPerson.getAge()); } }
Penjelasan Kod
Medan Persendirian
Nama medan, profesion, ketinggian, ID dan umur diisytiharkan sebagai peribadi. Ini menjadikan mereka tidak boleh diakses terus dari luar kelas.
Getters dan Setter
Kaedah awam seperti getName(), setName(), getProfession(), dan lain-lain bertindak sebagai titik akses terkawal untuk medan peribadi. Kaedah ini membenarkan kod luaran untuk mendapatkan dan mengubah suai data peribadi dengan selamat.
Pembina
Pembina memulakan medan apabila objek kelas Orang dicipta. Ini memastikan bahawa objek bermula dalam keadaan yang sah.
Kaedah Utama
Kaedah utama menunjukkan cara enkapsulasi digunakan. Medan persendirian diakses secara tidak langsung melalui kaedah getter.
Faedah dalam Contoh
-
Perlindungan Data:
- Medan peribadi tidak boleh diakses atau diubah suai secara langsung, menghalang perubahan yang tidak disengajakan atau berniat jahat.
-
Akses Terkawal:
- Dengan menggunakan setter, anda boleh memasukkan logik pengesahan untuk memastikan hanya data yang sah ditetapkan. Contohnya:
public void setAge(int age) { if (age > 0) { this.age = age; } else { System.out.println("Age must be positive."); } }
-
Kefleksibelan Kod:
- Jika pelaksanaan medan berubah (cth., menambahkan medan terbitan), kod luaran yang menggunakan kelas kekal tidak terjejas.
Contoh ini menggambarkan cara enkapsulasi memastikan kelas Person mengekalkan integriti dan menyembunyikan butiran pelaksanaannya sambil menyediakan antara muka terkawal untuk interaksi.
Atas ialah kandungan terperinci Memahami Enkapsulasi dalam Pengaturcaraan Berorientasikan Objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

GO Language melaksanakan penyulitan dan penyahsulitan SM4 dan SM2 dalam bahasa Go. Artikel ini akan memperkenalkan secara terperinci bagaimana menggunakan bahasa Go untuk melaksanakan proses penyulitan dan penyahsulitan penyulitan dan penyahsulitan algoritma SM4 dan SM2 dalam bahasa Go untuk memenuhi keperluan Java ...

Adakah perlu untuk mengikat dalam projek Python? Baru -baru ini, ketika saya belajar Python, saya perhatikan bahawa banyak projek sumber terbuka Django telah menulis banyak dari mereka dalam fungsi pandangan ...

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Bagaimanakah IntelliJidea mengenali nombor pelabuhan Springboot Project? Mula musim bunga menggunakan versi IntelliJideaultimate ...

Pengaturcaraan yang cekap: Mencari alat dan sumber kod yang boleh dipercayai Banyak pengaturcara tidak sabar -sabar untuk mencari laman web alat kod yang mudah untuk meningkatkan kecekapan dan mengelakkan maklumat besar ...

Kekeliruan dan jawapan mengenai JWT dan sesi Banyak pemula sering keliru tentang sifat dan senario mereka yang terpakai ketika belajar JWT dan sesi. Artikel ini akan berputar di sekitar J ...

Penjelasan terperinci mengenai masalah komunikasi antara Windows Server 2019 Firewall dan WebSocket. Program balang yang dibangunkan menggunakan SpringBoot yang digunakan di Windows Server 2019 ...

Dalam Intellij ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dreamweaver Mac版
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa