KomputerPemrograman

Enkapsulasi - apa ini? Enkapsulasi dalam pemrograman

Enkapsulasi - ini adalah salah satu dari tiga fitur utama dari pemrograman berorientasi objek (OOP). Dua lainnya - polimorfisme dan pewarisan. Bersama-sama mereka membentuk kerangka PLO yang menetapkan berbagai fitur menulis program dalam bahasa yang berbeda, menggunakan tiga prinsip-prinsip ini. bahasa berorientasi objek, pada gilirannya, wajib ketat mengikuti mereka.

Dasar-dasar OOP

Pemrograman berorientasi obyek pada tiga pilar penciptaan:

  • Polimorfisme, menjawab pertanyaan tentang bagaimana bahasa pemrograman tertentu berkaitan dengan benda-benda yang memiliki hubungan satu sama lain, dengan cara yang sama.
  • Warisan, memberikan jawaban, bagaimana stimulasi dari penggunaan kode dapat digunakan kembali.
  • Enkapsulasi, yang merupakan jawaban atas pertanyaan menyembunyikan implementasi berlangsung, dan dengan demikian integritas data.

terminologi

Enkapsulasi (programming) - adalah dengan menggunakan pengubah akses untuk menyembunyikan potongan kode dari pengguna akhir. Di bawahnya, pada gilirannya, berarti pengembang atau warisan situs.

Inti dari konsep "enkapsulasi"

Definisi tersebut menentukan bahwa dengan enkapsulasi berarti menyembunyikan seluruh atau sebagian dari kode program. Inti dari konsep "enkapsulasi" adalah untuk memanipulasi pengubah akses. Ini berarti bahwa pengembang dapat memutuskan sifat yang, metode, dan kelas akan terbuka untuk klien-kelas, dan apa - tersembunyi.

pengubah akses

Ada akses pengubah, yang, antara lain, mampu manipulyarivat enkapsulasi (pemrograman Java):

  • publik ( "Public" - publik, akses terbuka) - bagian kedua kelas saat ini dan benda-benda, dan ke dunia luar;
  • swasta ( "prayvat" - swasta, swasta, akses tersembunyi) - ditutup akses, esensi yang benar-benar kebalikan dari yang sebelumnya. Ini memberikan akses hanya dari kelas saat ini;
  • dilindungi ( "protekted" - dilindungi, akses setengah tersembunyi) - Akses ke kelas saat ini dan turunannya;
  • standar - tidak ditentukan akses pengubah berarti bahwa bidang / metode dapat dilihat untuk semua kelas saat ini dalam paket.

Dalam bahasa C # ( "Si Tajam"), selain di atas (kecuali yang terakhir), masih ada pengubah:

  • intern ( "internal" - akses internal) - aksesibilitas dalam perakitan saat ini, akses dalam ruangan untuk semua kasus lainnya;
  • internal yang dilindungi ( "internal yang protekted" - Protected Access internal) - penyatuan dua modifikator di satu di mana sifat nyata dari mereka berdua.

Peran enkapsulasi

Mekanisme enkapsulasi menghilangkan pengaruh eksternal pada kode dan penyalahgunaan data tertanam di dalamnya. Hal ini dilakukan dengan menggabungkan kode dan data menjadi satu.

Objek dan enkapsulasi

Menggabungkan pelaksanaan modul perangkat lunak dan data tertanam dalam kode, pemrograman disebut objek. Inti dari hubungannya dengan enkapsulasi adalah bahwa metode tersebut memungkinkan untuk mempertahankan dan menjamin integritas pengoperasian mekanisme.

Keuntungan dari enkapsulasi

Encapsulation - cara untuk menyederhanakan proses encoding. Banyak baris kode yang "belakang layar", dan dalam pekerjaan kelas utama akan keberatan contoh.

Ide perlindungan data

Encapsulation - juga merupakan mekanisme yang menyadari ide perlindungan data. logika program pemrograman berorientasi objek dibangun atas dasar apa sebagian besar data akan tersembunyi akses modifier pribadi (swasta, swasta) atau dilindungi (dilindungi). Dunia luar, pelanggan tidak sengaja atau sengaja tidak akan merusak pelaksanaan modul software. Karena sebenarnya itu membuatnya sangat mudah untuk tidak bahkan pada tujuan, enkapsulasi - ini adalah prinsip yang sangat baik.

Unit enkapsulasi

Kelas, sebagai unit dasar enkapsulasi dan menggambarkan data terdiri dari kode, yang mampu beroperasi pada data ini. Dia juga merupakan dasar untuk pembangunan objek. Yang terakhir, pada gilirannya, disajikan sebagai sebuah contoh.

Juga digunakan terminologi berikut:

  • anggota - ini adalah kode dan data termasuk dalam kelas;
  • ladang atau variabel misalnya - yang disebut data yang mendefinisikan kelas;
  • fungsi anggota - mengandung kode itu sendiri. fungsi anggota - nama umum. Sebuah kasus khusus - metode.

Contoh spesifik enkapsulasi

Enkapsulasi (programming) contoh:

* Catatan:

deskripsi - deskripsi dari metode / properti / variabel, yaitu mengomentari apa yang sebenarnya terjadi dalam program ini. Hal ini ditunjukkan dengan cara membuka / tag penutup

menggunakan System;

namespace OOPLibrary.Auto

{

///

/// Kelas ini dimaksudkan untuk menggambarkan tindakan mobil

///

public class Auto

{

///

/// variabel diciptakan untuk menulis di dalamnya, berapa tahun mobil, karena gangguan eksternal dalam pengembang properti menganggap berlebihan

/// pengubah ditandai swasta, yaitu ditutup, akses pribadi (lihat. Uraian di atas).

///

private int _age;

///

/// A boolean (hanya dua nilai yang mungkin - ya atau tidak), yang menggambarkan apakah kendaraan bergerak pada saat ini

/// Hal ini juga harus terbuka untuk pengguna akhir, siapa pun dia. Oleh karena itu variabel ini diberi akses pribadi pengubah "prayvat"

///

bool _isMoving swasta;

///

/// variabel string ini harus berisi informasi tentang warna mobil. Hal ini dapat diubah oleh pengaruh eksternal

/// karena untuk pengubah warna yang dipilih akses terbuka "publik".

///

publik string yang Warna;

///

/// Dalam kasus ini, kita mengasumsikan bahwa nama mobil, juga dapat diubah

/// ditugaskan modifikator publik (akses terbuka untuk semua, tanpa memandang kelas atau perakitan).

///

String Nama umum;

///

/// Membuka konstruktor kelas, dan semua sifat-sifat variabel menyatakan dan menetapkan lebih awal, mendapatkan nilai-nilai mereka

///

publik Auto ()

{

_age = 5;

_isMoving = false;

Color = "Purple";

Nama = "Skoda Octavia";

}

///

/// Metode menyadari nilai kembali dari usia auto. Mengapa hal ini perlu?

/// akses pribadi pengubah tidak memungkinkan untuk perubahan klien.

///

/// Mengembalikan usia mobil.

public string getAge ()

{

kembali "Pada saat ini, mesin yang dipilih" + _age + "tahun.";

}

///

/// Jika mobil tidak bergerak, metode ini menerapkan awal gerakan. Cek variabel oboznalsya, kondisi kendaraan (bepergian atau tidak), dan, tergantung pada hasil, yang sesuai tindakan / pesan ditampilkan.

///

public void Start ()

{

jika (_isMoving)

{

Console.WriteLine ( "Gerakan telah dimulai");

}

lain

{

_isMoving = true;

Console.WriteLine ( "Ready, Set .. Go off!");

}

}

///

/// Jika gerakan dimulai, metode ini berhenti padanya. Logika program yang sama seperti dalam kasus sebelumnya dianggap.

///

public void Berhenti ()

{

jika (_isMoving)

{

_isMoving = false;

Console.WriteLine ( "Berhenti Machine");

}

lain

{

Console.WriteLine ( "Kesalahan mobil dan sebagainya berdiri diam, tidak bergerak");

}

}

///

/// Diimplementasikan belok kiri, jika ada kendaraan

///

public void MoveLeft ()

{

jika (_isMoving)

{

Console.WriteLine ( "belok kiri dilakukan");

}

lain

{

Console.WriteLine ( "Kesalahan kendaraan adalah fitur rotasi stasioner saat ini tidak tersedia.");

}

}

///

/// Sebuah metode yang sama dengan belokan kanan

///

public void moveright ()

{

jika (_isMoving)

{

Console.WriteLine ( "Belok kanan berhasil dilaksanakan");

}

lain

{

Console.WriteLine ( "Kesalahan Mobil belum beranjak dari tempat Menghidupkan tepat itu pada saat ini tindakan, adalah mustahil untuk melakukan ..");

}

}

}

}

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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