Ang kalainan tali sa abstraction ug encapsulation

Katapusang pag-update: 24/04/2023

Unsa ang abstraction ug encapsulation?

La abstracción ug ang encapsulación Sila mao ang duha ka importante nga mga konsepto sa programming butang-oriented (POO). Ang duha nagsilbi sa pag-organisar ug pagtukod sa atong code ug sa paglikay sa posibleng mga sayop o panagbangi.

Abstracción

La abstracción mao ang proseso sa pag-ila sa mahinungdanong mga kinaiya sa usa ka butang ug laktawan ang dili kinahanglanon nga mga bahin. Sa OOP programming, ang abstraction nagtugot kanato sa paghimo og klase nga dili mabalaka mahitungod sa internal nga mga detalye sa pagpatuman niini.

Sama pananglit, kung naghimo kita usa ka dula sa karera, mahimo kita maghimo usa ka klase nga "Sasakyan" nga adunay mga kabtangan sama sa "Speed" o "Acceleration", apan dili kinahanglan nga mahibal-an kung giunsa ang paglihok sa makina o kung giunsa ang pagpasa sa gahum sa makina. mga ligid.

Pananglitan:

Atong tan-awon ang usa ka pananglitan sa code nga naghulagway sa abstraction:

class Car { private int CurrentSpeed ​​​​; pribado nga int acceleration; pampubliko nga Salakyanan() {karonSpeed ​​​​= 0; pagpatulin = 0; } public void accelerate(int increment) { acceleration += increment; } public void decelerate(int decrement) { acceleration -= decrement; } // Ubang mga kabtangan ug pamaagi... }
  

Niini nga pananglitan, naghimo kami og klase nga "Sasakyan" nga adunay duha ka kabtangan (kasamtangan nga tulin ug pagpatulin) ug duha ka pamaagi (pagpadali ug preno). Bisan pa, dili namon kinahanglan mahibal-an ang mga internal nga detalye kung giunsa ang paglihok sa awto, ug mahimo namon kini nga buhaton nga ingon kini usa ka abstract nga entidad.

Eksklusibo nga sulud - Pag-klik Dinhi  API: Unsa kini ug para sa unsa kini

Encapsulación

La encapsulación, sa laing bahin, mao ang proseso sa pagtago o pagpanalipod sa internal nga mga detalye sa usa ka klase ug pagtugot lamang sa pag-access pinaagi sa usa ka publikong interface. Gihimo kini aron malikayan ang posibleng panagbangi o mga sayop.

Pananglitan, kung kita adunay klase nga "Tawo" nga adunay mga kabtangan sama sa "Edad" o "Ngalan", gusto namon nga masiguro nga dili sila mahimo’g mabag-o gikan sa gawas sa klase. Aron mahimo kini, mahimo natong ibutang kini nga mga propyedad isip pribado ug maghimo og mga pamaagi sa publiko aron ma-access kini, sama sa "getAge()" o "setName()".

Pananglitan:

Atong tan-awon ang usa ka pananglitan sa code nga naghulagway sa encapsulation:

klase nga Tawo {pribado nga edad; pribadong String nga ngalan; publiko nga Tawo(int e, String n) { edad = e; ngalan = n; } public int getAge() {balik edad; } public String getName() {balik nga ngalan; } public void setName(String n) {ngalan = n; } // Ubang mga kabtangan ug pamaagi... }
  

Niini nga pananglitan, naghimo kami og klase nga "Tawo" nga adunay duha ka mga kabtangan (edad ug ngalan) ug daghang mga pamaagi aron ma-access kini (getAge, getName ug setName). Apan kini nga mga kabtangan ma-access lamang gikan sa sulod sa klase, nga nanalipod kanila gikan sa posible nga mga sayup o panagbangi.

Eksklusibo nga sulud - Pag-klik Dinhi  Unsaon nako pagprograma nga mas paspas? Praktikal nga mga tip

Konklusyon

Sa laktod nga pagkasulti, ang abstracción ug ang encapsulación duha ka importante nga konsepto sa object-oriented programming. Ang abstraction nagtugot kanato sa pagtrabaho uban sa abstract entidad nga walay pagkabalaka mahitungod sa internal nga mga detalye sa ilang pagpatuman, samtang ang encapsulation nagtugot kanato sa pagpanalipod sa internal nga mga detalye sa usa ka klase ug sa pagtugot lamang sa access pinaagi sa usa ka publiko nga interface.

Importante nga masabtan kini nga mga konsepto aron sa pagdesinyo ug pagpalambo sa epektibo nga object-oriented nga mga programa ug maayo ang pagkahan-ay.

Mga Reperensya