KomputerPengaturcaraan

Enkapsulasi adalah apa? Encapsulation dalam pengaturcaraan

Encapsulation adalah salah satu daripada tiga ciri utama pemrograman berorientasikan objek (OOP). Dua yang lain adalah polimorfisme dan warisan. Bersama-sama mereka membentuk dasar PLO, yang menentukan pelbagai kemungkinan untuk menulis program dalam bahasa yang berbeza, dengan menggunakan ketiga prinsip ini. Bahasa yang berorientasikan objek, pada gilirannya, diperlukan untuk mengikutinya dengan jelas.

OOP Basics

Pengaturcaraan berorientasikan objek berdiri pada tiga tiang alam semestanya:

  • Polimorfisme, menanggapi persoalan bagaimana bahasa pengaturcaraan tertentu merawat objek yang mempunyai hubungan dengan satu sama lain, dengan cara yang sama.
  • Warisan, memberi jawapan, bagaimana rangsangan penggunaan kod itu berlaku berulang kali.
  • Encapsulation, yang merupakan jawapan kepada persoalan bagaimana pelaksanaannya disembunyikan, dan oleh itu integriti data dipelihara.

Terminologi

Encapsulation (pengaturcaraan) adalah penggunaan pengubah akses untuk menyembunyikan kepingan kod dari pengguna akhir. Di bawahnya pula, bermakna pemaju atau objek yang mewarisi.

Intipati konsep "enkapsulasi"

Takrif mendefinisikan bahawa enkapsulasi bermaksud menyembunyikan semua atau sebahagian kod. Intipati konsep "enkapsulasi" adalah manipulasi pengubah akses. Ini bermakna bahawa pemaju sendiri memutuskan sifat, kaedah dan kelas yang akan dibuka kepada kelas klien, dan mana yang tersembunyi.

Pengubah Akses

Terdapat pengubah akses seperti itu, antara lain, dapat memanipulasi enkapsulasi (pengaturcaraan Java):

  • Awam (awam - awam, terbuka, akses) - berkongsi akses untuk objek dan kelas semasa, dan untuk dunia luar;
  • Swasta ("swasta" - peribadi, peribadi, akses tersembunyi) - akses peribadi, intipati yang sama sekali bertentangan dengan yang sebelumnya. Memberi akses hanya dari kelas semasa;
  • Dilindungi (dilindungi, separuh tersembunyi, akses) - akses untuk kelas semasa dan derivatif daripadanya;
  • Secara lalai, pengubahsuaian akses yang tidak dinyatakan menunjukkan bahawa bidang / kaedah boleh dilihat untuk keseluruhan kelas kelas pakej.

Dalam C # ("C Sharp"), sebagai tambahan kepada yang dinyatakan (tidak termasuk yang terakhir), masih terdapat pengubah seperti:

  • Dalaman (dalaman) - kebolehcapaian dalam pengumpulan semasa, akses tertutup untuk semua kes lain;
  • Dilindungi secara dalaman ("akses dalaman dilindungi") - gabungan dua modifier menjadi satu, di mana sifat-sifat kedua-dua mereka menunjukkan diri mereka sendiri.

Peranan Encapsulation

Mekanisme enkapsulasi membolehkan untuk mengecualikan pengaruh luaran pada kod program dan penggunaan data yang tidak terpasang di dalamnya. Ini dilakukan dengan menggabungkan kod dan data ke dalam satu.

Objek dan Encapsulation

Gabungan pelaksanaan modul program dan data yang tertanam dalam kod dalam pengaturcaraan disebut objek. Inti dari hubungannya dengan enkapsulasi terletak pada hakikat bahawa teknik ini yang membolehkan untuk mengekalkan dan memastikan fungsi integral mekanisme yang dipertimbangkan.

Kelebihan enkapsulasi

Enkapsulasi adalah cara untuk mempermudahkan proses pengekodan. Banyak baris kod tetap "di belakang tabir," dan di dalam kelas kerja utama berlaku dengan contoh objek.

Idea perlindungan data

Encapsulation juga merupakan mekanisme yang menerapkan idea perlindungan data. Logik program pemrograman berorientasikan objek adalah berdasarkan fakta bahawa kebanyakan data akan disembunyikan oleh pengubahsuaian akses peribadi (peribadi, swasta) atau dilindungi (dilindungi). Dunia luar, pelanggan secara tidak sengaja atau sengaja tidak boleh merosakkan pelaksanaan modul perisian. Kerana sesungguhnya sangat mudah untuk melakukan ini walaupun pada tujuannya, enkapsulasi adalah prinsip yang sangat baik.

Unit Enkapsulasi

Kelas, sebagai unit dasar enkapsulasi, menerangkan data dan mengandungi kod yang mampu beroperasi dengan data ini. Ia juga merupakan asas untuk membina objek. Yang terakhir, pada gilirannya, diwakili sebagai contoh kelas.

Istilah berikut juga digunakan:

  • Ahli adalah kod dan data yang termasuk dalam kelas;
  • Bidang, atau pembolehubah contoh-data yang dipanggil yang mentakrifkan kelas;
  • Fungsi ahli-mereka mengandungi kod itu sendiri. Fungsi ahli adalah nama generik. Satu kes khas ialah kaedah.

Encapsulation pada contoh konkrit

Contoh Encapsulation (programming):

* Nota:

Penerangan adalah perihalan kaedah / sifat / pembolehubah, iaitu, mengulas mengenai apa yang sebenarnya berlaku dalam program ini. Menunjukkan menggunakan tag pembuka / penutupan

Menggunakan Sistem;

Ruang nama OOPLibrary.Auto

{

///

/// Kelas ini direka untuk menerangkan ciri-ciri dan tindakan kereta

///

Awalan kelas Awam

{

///

/// Pemboleh ubah yang dicipta untuk menulis kepadanya, berapa umur kereta, kerana campur tangan luar dalam harta ini dianggap oleh pemaju untuk dibekalkan

/// ia ditandai dengan pengubah peribadi, iaitu, peribadi, akses peribadi (lihat perihal di atas).

///

Private int _age;

///

/// Pembolehubah Boolean (hanya dua kemungkinan nilai - ya atau tidak) yang menggambarkan sama ada kereta sedang bergerak

// Ini sepatutnya tidak terbuka kepada pengguna akhir, siapa pun dia. Oleh itu, pembolehubah ini diberikan pengubah akses peribadi "privat"

///

Private bool _isMoving;

///

/// Pemboleh ubah rentetan ini mesti mengandungi maklumat tentang warna kereta. Ia boleh tertakluk kepada perubahan daripada pengaruh luaran

/// kerana pengubah akses awam "awam" dipilih untuk warna.

///

Warna rentetan awam;

///

/// Dalam kes ini, kami menganggap bahawa nama kereta juga boleh diubah

/// memberikan pengubahsuaian awam (capaian awam untuk semua orang, tanpa mengira kelas atau perhimpunan).

///

Nama rentetan awam;

///

/// Pembina kelas dibuka, dan semua sifat yang dinyatakan oleh pembolehubah dan ditentukan lebih awal, dapatkan nilai mereka

///

Awam Awam ()

{

_age = 5;

_isMoving = false;

Warna = "Ungu";

Nama = "Skoda Octavia";

}

///

/// Kaedah ini menerapkan pulangan nilai umur auto. Kenapa perlu?

/// pengubahsuaian akses peribadi tidak membolehkan pelanggan menukarnya.

///

/// Mengembalikan umur kereta.

GetAge string awam ()

{

Pulangan "Pada masa ini, mesin yang dipilih adalah" + _age + "tahun.";

}

///

/// Jika kereta tidak bergerak, kaedah ini menerapkan permulaan gerakan. Pemeriksaan dibuat kepada pemboleh ubah yang menunjukkan keadaan kereta (sama ada perjalanan atau tidak), dan, bergantung kepada keputusan, tindakan yang sama dilakukan / mesej bersamaan dipaparkan.

///

Terbuka awam Mula ()

{

Jika (_isMoving)

{

Console.WriteLine ("Pergerakan telah dimulakan");

}

Lain

{

_isMoving = true;

Console.WriteLine ("Untuk memulakan, perhatian .. Teruskan! Mari kita pergi!");

}

}

///

/// Jika pergerakan dimulakan, maka kaedah ini akan menghentikannya. Logik pengaturcaraan yang sama seperti dalam kes sebelumnya.

///

Kekosongan awam Berhenti ()

{

Jika (_isMoving)

{

_isMoving = false;

Console.WriteLine ("Berhenti, mesin");

}

Lain

{

Console.WriteLine ("Ralat: Kereta sudah ada, tidak bergerak");

}

}

///

/// Belok kiri jika terdapat pergerakan kenderaan

///

Terbuka awam MoveLeft ()

{

Jika (_isMoving)

{

Console.WriteLine ("Belok kiri");

}

Lain

{

Console.WriteLine ("Ralat: Kereta tidak bergerak, fungsi giliran tidak tersedia");

}

}

///

/// Kaedah yang sama dengan putaran ke kanan

///

Terbuka awam MoveRight ()

{

Jika (_isMoving)

{

Console.WriteLine ("Belok kanan berjaya");

}

Lain

{

Console.WriteLine ("Ralat: Kereta belum bergerak lagi." Ke kanan sekarang adalah tindakan yang mustahil. ");

}

}

}

}

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ms.birmiss.com. Theme powered by WordPress.