Concepte OOPS explicate pentru începători

Publicat: 2022-12-20

Rolul programelor de calculator este de a modela cu succes cerințe complexe din lumea reală în instrucțiuni ușor de înțeles de calculator. Pentru a realiza acest lucru, mai multe paradigme de programare lucrează pe filozofii diferite. Acestea includ programarea funcțională, programarea procedurală, programarea orientată pe obiecte și multe altele. Aceste paradigme diferă în funcție de modul în care funcționează și, prin urmare, sunt independente de limbă.

În acest articol, ne vom uita la programarea orientată pe obiecte în profunzime. Înainte de a intra în complexitatea OOPS, iată câteva concepte cheie de OOP în Java pe care ar trebui să le țineți cont, deoarece sunt cei patru piloni pe care funcționează OOPS:

  • Abstracția
  • Încapsulare
  • Moştenire
  • Polimorfism

Vom vorbi despre aceste concepte OOP în profunzime într-o etapă ulterioară în acest articol. Dar mai întâi, să înțelegem ce este exact programarea orientată pe obiecte.

Cuprins

Ce este programarea orientată pe obiecte?

Înainte de programarea orientată pe obiecte, programarea funcțională era paradigma de programare dominantă. Limbaje precum C și COBOL au urmat această paradigmă, așa că programele scrise folosind aceste limbaje erau o serie de instrucțiuni. Acestea au folosit subrutine sau proceduri pentru a menține codurile sursă modulare și mai lizibile. Paradigma de programare funcțională sa concentrat mai mult pe logică decât pe date, iar programul ar combina atât datele, cât și programul.

Limbajele de programare, cum ar fi C++, C#, Java și altele, au trecut la abordarea de programare orientată pe obiecte după ce C. OOP-urile au prioritizat datele suprascriind instrucțiuni simple bazate pe logică. În esență, un obiect este tot ceea ce doriți să modelați în programul dvs. Ar putea fi orice și orice. Dacă sună vag chiar acum, rămâi până la sfârșit și vei înțelege exact la ce ne referim prin asta!

Ce sunt clasele și obiectele?

Programarea orientată pe obiecte funcționează cu clase și obiecte. Deci, este important să înțelegem ce înseamnă acești doi termeni și cum sunt diferiți unul de celălalt. Mai simplu spus, gândiți-vă la Clasele ca la un plan care vă ajută să creați obiecte atunci când aveți nevoie de ele.

Rolul Claselor este de a defini diferite atribute și diferite comportamente. Deci, dacă ar fi să modelăm un vehicul în programul nostru, am face o clasă pentru vehicul și am păstra atribute precum numărul de roți, culoarea, modelul, vârsta și așa mai departe; în timp ce comportamentele ar fi ca pornirea, accelerarea, frânarea și așa mai departe. După cum puteți vedea, atributele și comportamentul pe care le-am definit nu sunt specifice unui vehicul. Ele cuprind în esență comportamentul și atributele diferite ale diferitelor vehicule. În acest fel, atunci când doriți să instanțiați un nou obiect vehicul, puteți specifica atributele pentru vehiculul în cauză. În acest fel, Clasele acționează ca un model perfect pentru crearea de noi obiecte cu aceleași atribute și comportamente.

Așadar, iată cum va arăta vehiculul nostru de clasă și diferitele sale atribute și comportamente. Amintiți-vă că am folosit sintaxa Java pentru a scrie codul, dar paradigma de programare este neutră din punct de vedere al limbajului.

vehicul de clasă publică{

șir privat _culoare;

private int _model;

șir privat _makeYear;

șir privat _fuelType;

public void start(){ }

public void accelerate() {}

public void stop() {}

}

Folosind Clasa definită, putem crea diverse obiecte cu atribute diferite, având în același timp comportamente comune. De exemplu:

Obiectul 1
Model Alto
Combustibil GNC
Face 2018
Start()

Pauză()

Accelera()

Obiectul 2
Model VagonR
Combustibil Benzină
Face 2017
Start()

Pauză()

Accelera()

În acest fel, clasele de programare orientată pe obiecte vă pot ajuta să simplificați modelarea comportamentelor și sistemelor complexe din lumea reală. Toate datele, atributele și funcțiile sunt legate de obiectul oricărei clase. În acest fel, este eliminată necesitatea păstrării oricăror date globale. Aceasta este o diferență importantă între abordările de programare procedurală și de programare orientată pe obiecte.

Cu elementele de bază stabilite, să ne uităm în profunzime la cei patru piloni ai programării orientate pe obiecte:

Obțineți certificare în știința datelor de la cele mai bune universități din lume. Învață programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Abstracția

Abstracția înseamnă concentrarea asupra a ceea ce se face și nu asupra modului în care este îndeplinită sarcina. Întreaga idee din spatele abstracției este de a ajuta la construirea de module independente care pot fi făcute să interacționeze între ele fără să se bazeze unul pe celălalt. În acest fel, întreținerea unui program devine, de asemenea, mai ușoară și mai ușor de gestionat. Cu Abstraction, OOP-urile încearcă să reprezinte doar caracteristici esențiale fără a intra în modul în care sunt implementate acele caracteristici sau cum funcționează elementele interne ale sistemului.

Ideea din spatele unuia dintre cele mai importante concepte OOPS din Python este că programatorii trebuie să se concentreze doar asupra lucrurilor care contează direct pentru modulul curent. Modificarea unui modul nu ar trebui să aibă un impact direct asupra altor module independente. Un programator are nevoie doar de cunoștințe despre modulul curent și despre ceea ce oferă acesta. Nu este prea nevoie să înțelegem funcționarea de bază a modulului pentru a realiza ceea ce este necesar; prin urmare, aceste informații sunt extrase pentru cele mai bune rezultate.

Dacă iei ideea de abstracție dincolo de programare, vei realiza că abstracția, în esență, este peste tot. Obiectele cu care ne ocupam zilnic sunt abstrase de la noi la diferite niveluri. De exemplu, nu știm cum funcționează elementele interne ale frânei mașinii noastre, dar ni s-a pus la dispoziție o pedală pentru a aplica frânele în timp ce atragem mecanismul din spatele perdelelor. În acest fel, nu trebuie să vă faceți griji cu privire la modul în care funcționează; trebuie doar să apăsați pedala.

Încapsulare

Conceptul de încapsulare este strâns legat de conceptul anterior de abstractizare. Încapsularea este, în esență, totul despre furnizarea de soluții la o problemă fără a solicita utilizatorului final să înțeleagă domeniul problemei pe deplin. Pentru a face acest lucru, încapsularea leagă toate datele și comportamentul împreună ca o singură unitate. În acest fel, utilizatorul final este împiedicat să cunoască elementele interioare oriunde este implementată abstracția.

Utilizatorul nu poate accesa datele direct și folosește funcțiile expuse pentru a accesa datele atunci când este necesar. Ascunzând elementele interne ale obiectului, paradigma de programare OOPS protejează integritatea modulelor și nu permite utilizatorilor să seteze datele interne într-o stare inconsistentă. Dacă nu se face, acest lucru ar putea cauza multe probleme pe termen lung. Deci, în acest fel, încapsularea este mai mult despre expunerea complexității într-o manieră rezistentă la eșec și mai puțin despre ascunderea completă a complexității.

Moştenire

Moștenirea este o altă caracteristică puternică a paradigmei de programare orientată pe obiecte. Rolul moștenirii este de a aranja și organiza eficient și rapid clasele într-o ierarhie pentru a le permite acestor clase să moștenească comportamentul și atributele de la clasele care se află mai sus în ierarhie. În esență, moștenirea poate fi înțeleasă ca „este o relație”, care este foarte asemănătoare cu modul în care vorbim despre lucrurile din lumea reală.

De exemplu, spunem că „un papagal este o pasăre”. Aceasta înseamnă că un papagal este un obiect al clasei pasăre și, prin urmare, moștenește unele atribute și comportamente din clasa mai largă. Cu toate acestea, acest lucru nu va fi corect dacă spunem că o bancă este un cont bancar. Așa funcționează ierarhia în moștenire și vă permite să definiți comportamente și implementări care pot fi ulterior specializate pentru clasele specializate. Rețineți că moștenirea nu funcționează invers. Deci, clasa părinte nu va moșteni niciodată nimic din clasa copil. Cu toate acestea, clasele copil moștenesc atât atribute, cât și comportamente de la clasele părinte, în funcție de natura acelor atribute și comportamente (publice sau private). Moștenirea este o modalitate de a vă reutiliza programul și vă poate ajuta să faceți întregul cod sursă mai scurt și mult mai ușor de înțeles. Dar trebuie să rețineți că nu ar trebui să adăugați niveluri după niveluri de moștenire dacă nu este necesar.

Verificați programele noastre din SUA - Data Science

Program de certificat profesional în știința datelor și analiză de afaceri Master în Știința Datelor Master în Știința Datelor Program de certificat avansat în știința datelor
Program Executive PG în Știința Datelor Bootcamp de programare Python Program de certificat profesional în știința datelor pentru luarea deciziilor de afaceri Program avansat în Știința datelor

Polimorfism

Polimorfismul este unul dintre multele concepte OOPS importante din Python și Java, care se ocupă, în esență, de multe implementări posibile diferite ale oricăror unități executabile și de toate diferențele subtile care apar în fundal fără a-l face pe utilizator conștient de aceste modificări. Polimorfismul facilitează extinderea programelor de calculator cu obiecte specializate fără nicio dificultate.

De exemplu, dacă doriți să scrieți o bucată de text pe hârtie - puteți folosi un pix, un marker, un creion sau chiar un creion. Tot ce ai nevoie este ceva care să se potrivească în mână și să te ajute să faci simboluri în timp ce îl apeși pe o hârtie. Deci, actul de a scrie vă va ajuta să faceți simboluri pe hârtie, în timp ce instrumentul de care aveți nevoie depinde de alegerea dvs.

În acest sens, moștenirea este o modalitate prin care programul poate obține polimorfism, în care implementarea personalizată a metodei suprascrie comportamentul definit în clasa moștenită. Acest proces este cunoscut și sub denumirea de polimorfism în timpul rulării sau suprascriere a metodei. Există o altă formă de polimorfism, cunoscută și sub numele de supraîncărcare a metodei. În asta, moștenirea nu intră deloc în imagine. În supraîncărcarea metodei, numele metodei este păstrat același, în timp ce argumentele din metodă diferă în funcție de sarcina care urmează să fie efectuată.

In concluzie

Cu aceasta, ajungem la sfârșitul discuției noastre despre conceptele OOPS în Java . Lucrurile discutate până acum stabilesc toate bazele de care aveți nevoie pentru a începe cu programarea orientată pe obiecte fără să vă faceți griji pentru nimic. Trebuie să implementați discuția și să încercați lucrurile practic; la urma urmei, programarea înseamnă exersare și perseverență.

Cunoașterea OOPS vă va ajuta și în călătoria dvs. în domeniul științei datelor, deoarece veți folosi limbaje precum Python, care se bazează pe paradigma OOPS. Știința datelor este un domeniu în plină expansiune și nu există o lipsă de oportunități pentru oamenii cu abilitățile și cunoștințele potrivite. Consultați MS în știința datelor de la upGrad, în colaborare cu Universitatea din Arizona, și aveți șansa de a învăța de la experți din industrie alături de o rețea puternică de absolvenți care vă va ajuta pe parcursul carierei.

Care sunt cele patru concepte ale OOPS?

Cele patru concepte de bază ale OOPS sunt abstracția, încapsularea, moștenirea și polimorfismul.

Cum diferă clasele și obiectele?

Clasele sunt planurile fenomenelor care urmează să fie modelate. Obiectele, pe de altă parte, sunt exemple particulare de clase care împrumută comportament și atribute din clasa din care sunt instanțiate.

În ce limbă funcționează OOPS?

OOPS este o filozofie de programare care este neutră din punct de vedere al limbajului. Puteți lucra pe OOPS folosind orice limbaj de programare modern, cum ar fi C++, Java, Python, Ruby etc.