Incapsulamento – che cosa è questo? Incapsulamento in programmazione
Incapsulamento – questo è uno dei tre principali caratteristiche di programmazione orientata agli oggetti (OOP). Gli altri due – il polimorfismo e l'ereditarietà. Insieme formano il quadro OLP che stabilisce una serie di caratteristiche di scrivere programmi in diverse lingue, utilizzando questi tre principi. linguaggi orientati agli oggetti, a loro volta, sono obbligati a seguirli rigorosamente.
Nozioni di base OOP
Programmazione orientata agli oggetti su tre pilastri della sua creazione:
- Il polimorfismo, rispondendo alla domanda di come un particolare linguaggio di programmazione si occupa di oggetti che hanno un rapporto con l'altro, in un modo simile.
- Ereditarietà, dare una risposta, come è la stimolazione del uso di codice riutilizzabile.
- Incapsulamento, che è la risposta alla domanda di nascondere l'attuazione avviene, e quindi l'integrità dei dati.
terminologia
Incapsulamento (programmazione) – è di usare modificatori di accesso al fine di nascondere pezzi di codice da parte dell'utente finale. Sotto di essa, a sua volta, significa che i siti degli sviluppatori o del patrimonio.
L'essenza del concetto di "incapsulamento"
La definizione specifica che per l'incapsulamento significava nascondere tutto o parte del codice del programma. L'essenza del concetto di "incapsulamento" è quello di manipolare modificatori di accesso. Ciò significa che lo sviluppatore può decidere quali proprietà, metodi e classi sarà aperta al cliente di classe, e che – sono nascosti.
modificatori di accesso
Ci sono modificatori di accesso, che, tra le altre cose, è in grado di manipulyarivat incapsulamento (programmazione Java):
- pubblico ( "Public" – pubblico, l'accesso aperto) – condividono sia le classi e gli oggetti attuali, e al mondo esterno;
- privata ( "prayvat" -,, accesso nascosto privato privato) – Accesso chiuso, la cui essenza è completamente l'opposto di quello precedente. Esso fornisce l'accesso solo dalla classe corrente;
- protetta ( "protekted" – protetto, l'accesso seminascosto) – L'accesso alla classe corrente e dei suoi derivati;
- default – modificatore di accesso non specificato significa che il campo / metodo può essere visto per tutte le classi attuali nel pacchetto.
Nel linguaggio C # ( "Si Sharp"), in aggiunta a quanto sopra (tranne l'ultimo), non ci sono modificatori ancora:
- interno ( "interna" – accesso interno) – accessibilità nell'assieme corrente, collegamento interno con tutti gli altri casi;
- protetta interna ( "interna protekted" – Accesso interno Protetta) – unione di due modificatori in una in cui le proprietà manifesti di entrambi.
Il ruolo di incapsulamento
meccanismo di incapsulamento elimina influenza esterna sul codice e l'uso improprio dei dati incorporati in essa. Ciò si ottiene combinando il codice ei dati in uno.
Oggetto e incapsulamento
Combinando la realizzazione di un modulo software e dati incorporati nel codice, la programmazione viene chiamato un oggetto. L'essenza del suo collegamento con l'incapsulamento è che un tale metodo permette di mantenere e garantire l'integrità del funzionamento del meccanismo.
Il vantaggio di incapsulamento
Incapsulamento – un modo per semplificare il processo di codifica. Numerose linee di codice sono "dietro le quinte", e nel lavoro di classe principale sta per istanze di oggetti.
L'idea della protezione dei dati
Incapsulamento – è anche un meccanismo che realizza l'idea di protezione dei dati. la logica del programma programmazione orientata agli oggetti è costruito sulla base di ciò che la maggior parte dei dati sarà l'accesso modificatore di nascosto privato (privato, privato) o protetto (protetto). Il mondo esterno, il cliente accidentalmente o deliberatamente non danneggia l'implementazione di un modulo software. Perché di fatto rende molto facile nemmeno di proposito, l'incapsulamento – questo è un buon principio.
unità di incapsulamento
Classe, come unità di base di incapsulamento e descrive i dati comprende un codice, che è in grado di operare su tali dati. Egli è anche la base per la costruzione dell'oggetto. Quest'ultimo, a sua volta, si presenta come un esempio.
Utilizzato anche la seguente terminologia:
- membri – questo è il codice e dei dati inclusi nella classe;
- campi o variabili di istanza – i cosiddetti dati che definisce la classe;
- funzioni membro – che contengono il codice stesso. funzioni membro – un nome comune. Un caso speciale – metodi.
esempio specifico incapsulamento
Incapsulamento (programmazione) Esempio:
* Nota:
Descrizione – una descrizione della / struttura / variabile metodo, cioè commentando quanto avviene effettivamente nel programma. Si dimostra mediante apertura / tag di chiusura
using System;
namespace OOPLibrary.Auto
{
///
/// Questa classe lo scopo di descrivere l'azione della vettura
///
public class Auto
{
///
/// variabili create al fine di scrivere in esso, quanti anni l'auto, dal momento che l'interferenza esterna nel immobiliarista considera superfluo
/// modificatore è contrassegnato come privato, cioè chiuso, accesso privato (cfr. La descrizione di cui sopra).
///
int _age privato;
///
/// Un booleani (solo due valori – sì o no), che descrive se il veicolo è in movimento in questo momento
/// Dovrebbe anche essere aperta per l'utente finale, chiunque fosse. Quindi questa variabile viene assegnato un accesso privato modificatore di "prayvat"
///
bool _isMoving privato;
///
/// Questa variabile stringa dovrebbe contenere informazioni sul colore della vettura. Può essere modificato da influenze esterne
/// perché per il modificatore di colore selezionato open access "pubblico".
///
public string di colore;
///
/// In questo caso particolare, si assume che il nome della vettura, inoltre, può essere modificato
/// assegnato un modificatore di pubblico (accesso aperto per tutti, indipendentemente dalla classe o assieme).
///
public string Name;
///
/// Apre il costruttore della classe, e tutte le proprietà della variabile espressa e impostare un po 'prima, ottenere i loro valori
///
Auto pubblica ()
{
_age = 5;
_isMoving = falso;
Color = "Viola";
Name = "Skoda Octavia";
}
///
/// Il metodo realizza un valore di ritorno dell'età automatico. Perché è necessario?
/// accesso privato modificatore non lo rende possibile per i cambiamenti del cliente.
///
/// Restituisce l'età della vettura.
public string GetAge ()
{
tornare "Al momento, la macchina selezionata" + + "_age anni.";
}
///
/// Se la macchina non è in movimento, questo metodo implementa l'inizio del movimento. Controlli oboznalsya variabili, le condizioni del veicolo (in viaggio o meno), e, a seconda dei risultati, viene visualizzata l'azione / messaggio appropriato.
///
public void Start ()
{
if (_isMoving)
{
Console.WriteLine ( "Il movimento è già stato avviato");
}
altro
{
_isMoving = true;
Console.WriteLine ( "Ready, Set .. Vai via!");
}
}
///
/// Se è stato avviato il movimento, questo metodo lo ferma. La stessa logica del programma come nel caso precedente considerato.
///
Arresto public void ()
{
if (_isMoving)
{
_isMoving = falso;
Console.WriteLine ( "fermo macchina");
}
altro
{
Console.WriteLine ( "macchina errore e così stare fermo, non ti muovere");
}
}
///
/// Implementato svolta a sinistra, se v'è un veicolo
///
MoveLeft public void ()
{
if (_isMoving)
{
Console.WriteLine ( "svoltare a sinistra sono fatti");
}
altro
{
Console.WriteLine ( "veicolo errore è funzione di rotazione stazionaria non è attualmente disponibile.");
}
}
///
/// Un metodo simile con la svolta a destra
///
MoveRight public void ()
{
if (_isMoving)
{
Console.WriteLine ( "Girare a destra è stato implementato con successo");
}
altro
{
Console.WriteLine ( "Errore La vettura non si è mosso dal punto girando a destra è al momento l'azione, è impossibile eseguire ..");
}
}
}
}