informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Enkapsulasi adalah salah satu dari tiga fitur dasar pemrograman berorientasi objek (OOP) (enkapsulasi, pewarisan, polimorfisme). Ini mengacu pada penggabungan data (properti) dan metode (fungsi) untuk mengoperasikan data ini ke dalam unit independen (kelas), menyembunyikan detail internal objek sebanyak mungkin, dan hanya mengekspos antarmuka ke dunia luar. Tujuannya adalah untuk melindungi data objek, mencegah kode eksternal mengakses langsung struktur data internal objek, mengurangi kesalahan, dan menyederhanakan kompleksitas.
Menggunakan Kelas : Saat mendefinisikan kelas, atur anggota data (properti) sebagai pribadi atau dilindungi, dan atur metode pengoperasian data ini sebagai publik. Dengan cara ini, kode eksternal tidak dapat mengakses anggota privat kelas secara langsung, tetapi hanya dapat mengaksesnya secara tidak langsung melalui metode publik.
pengubah akses:
public
: Dapat diakses oleh kode eksternal apa pun.protected
: Hanya dapat diakses di kelas itu sendiri dan kelas turunannya (subkelas).private
: Hanya dapat diakses di dalam kelas itu sendiri, bukan kelas turunan.Konstruktor dan destruktor : Inisialisasi objek melalui konstruktor dan bersihkan sumber daya yang ditempati oleh objek melalui destruktor. Mereka juga merupakan bagian dari enkapsulasi karena mengontrol siklus hidup objek.
Di bawah ini adalah contoh pembungkus C++ sederhana yang menunjukkan aRectangle
Implementasi kelas (persegi panjang).
- #include <iostream>
-
- class Rectangle {
- private:
- double width; // 矩形的宽
- double height; // 矩形的高
-
- public:
- // 构造函数
- Rectangle(double w, double h) : width(w), height(h) {}
-
- // 设置宽度
- void setWidth(double w) {
- width = w;
- }
-
- // 获取宽度
- double getWidth() const {
- return width;
- }
-
- // 设置高度
- void setHeight(double h) {
- height = h;
- }
-
- // 获取高度
- double getHeight() const {
- return height;
- }
-
- // 计算面积
- double getArea() const {
- return width * height;
- }
- };
-
- int main() {
- Rectangle rect(5.0, 10.0);
- std::cout << "Rectangle area: " << rect.getArea() << std::endl;
- rect.setWidth(7.0);
- std::cout << "New Rectangle area: " << rect.getArea() << std::endl;
- return 0;
- }
Dalam contoh ini,Rectangle
umumwidth
Danheight
Properti dijadikan pribadi dan kode eksternal tidak dapat mengaksesnya secara langsung.Sebaliknya, kami menggunakan metode publik sepertisetWidth
、getHeight
DangetArea
) untuk mengakses dan mengubah properti pribadi ini. Metode ini mengimplementasikan enkapsulasi data dan menyediakan antarmuka yang jelas untuk penggunaan eksternal.