KomputilojProgramado

Encapsulación - kio estas tio? Encapsulación en programado

Encapsulación - tio estas unu el la tri ĉefaj trajtoj de programado orientita al celoj (OOP). La aliaj du - polimorfismo kaj heredaĵo. Kune ili konsistigas la OLP kadron kiu demetas gamo de trajtoj de skribo programoj en malsamaj lingvoj, uzante ĉi tiuj tri principoj. Objektema lingvoj, siavice, estas devigataj strikte sekvi ilin.

OOP Basics

Programado orientita al celoj sur tri kolonoj de lia kreo:

  • Polimorfismo, respondante la demandon de kiel aparta programlingvo traktas objektoj kiuj havas rilaton kun la alia, en simila maniero.
  • Heredaĵon, donante respondon, kiel estas la estimulación de la uzo de reuzebla kodo.
  • Encapsulación, kiu estas la respondo al la demando de kaŝi la efektivigo okazas, kaj tiel la datumoj integrecon.

terminologio

Encapsulación (programado) - estas uzi aliro modifiloj por kaŝi pecojn de kodo de la uzanto fino. Sub ĝi, siavice, signifas la ellaboranto aŭ heredaĵo ejoj.

La esenco de la koncepto de "encapsulación"

La difino precizigas ke per encapsulación signifis kaŝante ĉiuj aŭ parto de la programo kodo. La esenco de la koncepto de "encapsulación" estas manipuli aliro modifiloj. Tio signifas ke la ellaboranto povas decidi kiun ecoj, metodoj kaj klasoj estos malferma al la kliento-klaso, kaj kio - estas kaŝitaj.

aliro modifiloj

Ekzistas aliro modifiloj, kiu, interalie kapablas manipulyarivat encapsulación (programado Java):

  • publika ( "Publika" - publiko, malfermita aliro) - porcion ambaŭ la nuna klasoj kaj objektoj, kaj al la ekstera mondo;
  • privata ( "prayvat" - privataj, privataj, kaŝita aliro) - fermita aliro, la esenco de kiu estas tute la malo de la antaŭa. Ĝi ebligas aliron nur de la aktuala klaso;
  • protektita ( "protekted" - protektitaj, duone kaŝitaj aliro) - Aliro al la nuna klaso kaj liaj derivitaj;
  • Defaŭlte - nespecifitaj aliro modifilo signifas ke la kampo / metodo povas vidi la tutan nunan klasojn en la pakaĵo.

En C # lingvo ( "Si Sharp"), aldone al la supre (krom la lasta), ekzistas ankoraŭ modifiloj:

  • interna ( "interna" - internaj aliro) - alirebleco en la nuna kunveno, endomaj aliro al ĉiuj aliaj kazoj;
  • interna protektita ( "interna protekted" - interna Ŝlositaj Aliro) - unio de du modifiloj en unu en kiu manifestiĝas ecoj de ambaŭ de ili.

La rolo de encapsulación

encapsulación mekanismo forigas eksterajn influo sur la kodo kaj misuzo de datumoj enigita en ĝi. Ĉi tio sukcesas kombini la kodo kaj datumoj en unu.

Objekto kaj encapsulación

Kombinante la implementación de programaro modulo kaj datumojn enigita en la kodo, programado nomiĝas objekto. La esenco de lia ligo kun la encapsulación estas, ke tia metodo permesas subteni kaj certigi la integrecon de la funkciado de la mekanismo.

La avantaĝo de encapsulación

Encapsulación - manieron simpligi la kodado procezo. Multnombraj linioj de kodo estas "malantaŭ la scenoj", kaj en la ĉefa klaso laboro estas iranta objekto petskriboj.

La ideo de datumoj protekto

Encapsulación - ĝi estas ankaŭ mekanismo kiu realigas la ideon de datumoj protekto. Programo logiko programado orientita al celoj estas konstruita surbaze de kio la plej multaj el la datumoj estos kaŝita aliro modifilo privata (privata, privata) aŭ protektitaj (protektita). La ekstera mondo, la kliento akcidente aŭ intence ne damaĝi la implementación de programaro modulo. Ĉar fakte faras tre facila por eĉ intence, encapsulación - tio estas tre bona principo.

encapsulación unuo

Klaso, kiel baza unuo de encapsulado kaj priskribas la datumoj konsistas kodo, kiu povas operacii sur tiuj datumoj. Li ankaŭ estas la bazo por la konstruo de la objekto. Tiu lasta, siavice, estas prezentita kiel ekzemple.

Ankaŭ uzis la sekvan terminologion:

  • membroj - tio estas la kodo kaj la datumoj estas inkluzivita en la klaso;
  • kampoj aŭ ekzemple variabloj - la tiel nomata datumoj kiuj difinas la klaso;
  • membro funkcioj - ili enhavas la kodon mem. Membro funkcioj - komuna nomo. Speciala okazo - metodoj.

Encapsulación specifa ekzemplo

Encapsulación (programado) ekzemple:

* Noto:

priskribo - priskribo de la metodo / proprieto / variablo, te komentante kio vere okazas en la programo. Ĝi estas pruvita per malfermo / fermo etikedoj

uzante Sistemo;

nomspaco OOPLibrary.Auto

{

///

/// Ĉi klaso celas priskribi la aŭto agado

///

publika klaso Aŭtomata

{

///

/// variabloj kreita por skribi en ĝi, kiom da jaroj la aŭto, ĉar la ekstera enmiksiĝo en la proprieto ellaboranto konsideras superflua

/// modifilo estas markita privataj, tio estas: fermita, privata aliro (vidi. La priskribo supre).

///

privata int _age;

///

/// A bulea (nur du eblaj valoroj - jes aŭ ne), kiu priskribas, ĉu la veturilo moviĝas en la momento

/// Ĝi devus ankaŭ esti malfermitaj al la uzanto fino, kiu ajn li estas. Sekve ĉi tiu variablo estas asignita privata aliro modifilo "prayvat"

///

privata bool _isMoving;

///

/// Ĉi kordo variablo devus enhavi informon pri la koloro de la aŭto. Ĝi povas esti ŝanĝita per eksteraj influoj

/// ĉar por la koloro modifilo elektitan liberalira "publika".

///

publika ĉeno Koloro;

///

/// En ĉi tiu aparta kazo, ni supozas ke la nomo de la aŭto ankaŭ povas esti ŝanĝita

/// asignita modifilo de publika (malfermita aliro por ĉiuj, sendepende de klaso aŭ kunveno).

///

publika ĉeno Nomo;

///

/// Malfermas la klaso konstruilo, kaj ĉiuj ecoj de la esprimitaj variablo kaj agordi iom pli frue, akiri sian valoroj

///

publika Aŭtomata ()

{

_age = 5;

_isMoving = malvera;

Koloro = "Purpura";

Nomo = "Skoda Octavia";

}

///

/// La metodo realigas reveno valoro de la auto aĝo. Kial estas tio necesa?

/// privata aliro modifilo ne faras ĝin ebla por la kliento ŝanĝoj.

///

/// Returns la aĝo de la aŭto.

publika ĉeno GetAge ()

{

reveni "Nuntempe, la elektitan maŝinon" + _age + "jaroj.";

}

///

/// Se la aŭto ne moviĝas, tiu metodo implementa la komenco de la movado. Ĉekojn variablo oboznalsya, la kondiĉo de la veturilo (vojaĝado aŭ ne), kaj, depende de la rezultoj, la konvenan agon / mesaĝo estas montrita.

///

publika dezerta Komenco ()

{

se (_isMoving)

{

Console.WriteLine ( "La movado jam komencis");

}

alia

{

_isMoving = vera;

Console.WriteLine ( "Ready, Serio .. Iru for!");

}

}

///

/// Se la moviĝo estis farita, tiu metodo haltas lin. La sama programo logiko kiel en la antaŭa kazo konsiderita.

///

publika dezerta Stop ()

{

se (_isMoving)

{

_isMoving = malvera;

Console.WriteLine ( "Haltsignalo Machine");

}

alia

{

Console.WriteLine ( ". Eraro aŭto kaj tiel staru, ne movas");

}

}

///

/// Realigita maldekstra vico, se estas veturilo

///

publika dezerta MoveLeft ()

{

se (_isMoving)

{

Console.WriteLine ( "turniĝu maldekstren estas farita");

}

alia

{

Console.WriteLine ( ". Eraro veturilo estas senmova rotacio trajto estas nuntempe ne havebla.");

}

}

///

/// Simila metodo kun la dekstra vico

///

publika dezerta MoveRight ()

{

se (_isMoving)

{

Console.WriteLine ( "Turnu dekstra estis efektivigita sukcese");

}

alia

{

Console.WriteLine ( ". Eraro La aŭto ne moviĝis de la loko Turnante dekstra estas en la momento la ago, estas neeble plenumi ..");

}

}

}

}

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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