Rumah >Java >javaTutorial >Memahami Enkapsulasi dalam Pengaturcaraan Berorientasikan Objek

Memahami Enkapsulasi dalam Pengaturcaraan Berorientasikan Objek

Susan Sarandon
Susan Sarandonasal
2025-01-04 08:06:39869semak imbas

Understanding Encapsulation in Object-Oriented Programming

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

  1. Menyembunyikan Data: Keadaan dalaman disembunyikan daripada dunia luar dan akses dikawal melalui kaedah (pengambil dan penetap).
  2. Kebolehselenggaraan Kod yang Dipertingkat: Perubahan pada medan atau kaedah boleh dibuat tanpa menjejaskan kod luaran yang menggunakan kelas.
  3. 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

  1. Perlindungan Data:

    • Medan peribadi tidak boleh diakses atau diubah suai secara langsung, menghalang perubahan yang tidak disengajakan atau berniat jahat.
  2. 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.");
         }
     }
    
  3. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn