860 Shares 2187 views

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 ..");

}

}

}

}