Concepte și exemple OOP pe care fiecare programator ar trebui să le cunoască

Publicat: 2021-02-26

În acest articol, vom acoperi conceptele de bază despre programarea orientată pe obiecte și vom discuta termenii folosiți în mod obișnuit: abstracție, încapsulare, moștenire și polimorfism.

Pentru început, OOP este o metodologie de programare care cere programatorilor să creeze obiecte și să le folosească pe tot parcursul programului în cadrul funcțiilor care necesită astfel de obiecte pentru funcționarea lor. Motivul pentru care conceptul OOP este utilizat pe scară largă în Java este că permite reutilizarea codului, menținând în același timp securitatea.

Înainte de a vorbi despre cei patru piloni ai programării orientate pe obiecte, să ne familiarizăm cu termenii generici pe care îi auzim foarte des atunci când folosim oricare dintre limbajele orientate pe obiecte: Java, python, c++.

Cuprins

Clasă

O clasă este o colecție de obiecte care definește un set de proprietăți care este comun tuturor obiectelor de un anumit tip. Poate fi numit și un plan pentru crearea de obiecte. O clasă presupune următoarele componente:

Numele clasei: Numele dat unei clase care începe cu alfabetul majuscul.

Modificatori: Pe baza funcționalității modificatorilor de clasă, pot fi fie publici, privați sau impliciti.

Corp : Corpul clasei conține toate codurile de pe obiectele prezente în clasă. Aceasta poate varia de la declararea oricăror variabile sau crearea oricărui constructor sau metode care conțin funcționarea unui obiect.

Obiect

Un obiect este definit ca o instanță a unei clase și conține entități din viața reală. De exemplu, pentru o clasă numită Animale, obiectele sale vor fi o pisică, un câine, un elefant și colab. Fiecare obiect are propria identitate, atribut și comportament. Codul de mai jos descrie utilizarea clasei, obiectului și metodei în timpul programării în limbajul java.

Metode

Metodele sunt definite în cadrul unei clase și sunt utilizate pentru a îndeplini o anumită funcție. Metoda poate conține sau nu un parametru de intrare. Codul de mai jos descrie utilizarea clasei, obiectului și metodei în timpul programării în limbajul java.

În codul de mai sus, Player este numele dat clasei noastre, în timp ce runs este un parametru trecut în metoda Batsman care returnează run-urile marcate de el atunci când este apelat printr-un obiect numit myobj.

Modificatori de acces

Modificatorii de acces din Java definesc accesibilitatea sau extinderea unei metode sau a unui constructor sau a clasei. Cele patru tipuri de modificatori de acces sunt:

  1. Public : Codul scris într-o clasă este accesibil altor clase.
  2. Privat : codul scris este accesibil numai în cadrul acelei clase specifice.
  3. Implicit : Codul scris este accesibil în cadrul aceluiași pachet.
  4. Protejat : Codul este accesibil într-un pachet și, de asemenea, printr-o subclasă. În absența unei clase de copii, codul nu poate fi accesat.

Acum să continuăm și să vorbim despre esențialul programării orientate pe obiecte.

Moştenire

Termenul de moștenire se referă la moștenirea proprietăților unei clase către alta. Proprietățile se referă la atributele și metodele clasei părinte. Clasa părinte este acea clasă ale cărei proprietăți trebuie să fie moștenite de alte clase. Clasele care moștenesc proprietățile clasei părinte se numesc clasa sau subclasa copil. Pentru a moșteni proprietățile clasei părinte în clasa copil, se folosește un cuvânt cheie numit extinde .

În exemplul de mai sus, Sponsorul este clasa părinte, proprietarul fiind atributul acesteia. Am creat o subclasă numită Team care moștenește clasa părinte - Sponsor. Am creat un obiect Team care poate accesa proprietățile clasei părinte. Rezultatul codului de mai sus este:

Polimorfismul

După cum sugerează și numele, polimorfismul este capacitatea unei variabile sau a unei funcții de a exista în forme multiple. Polimorfismul permite programatorului să efectueze diferite sarcini folosind aceeași variabilă sau funcție. Un exemplu real de polimorfism ar fi - luați în considerare un teren deschis, acum acest teren poate fi folosit pentru a practica sporturi.

În plus, poate fi folosit și pentru organizarea de nunți și concerte. În cele din urmă, același teren poate fi folosit pentru parcarea vehiculelor. Din aceasta, putem deduce că o singură variabilă poate avea mai multe implementări în funcție de utilizarea sa.

Polimorfismul întâlnim de obicei doi termeni și anume- Supraîncărcarea metodei și Suprascrierea metodei .

În Method Overloading , o singură metodă poate fi utilizată în numeroase moduri și poate îndeplini diferite funcții. Metodele vor avea același nume, dar pot fi utilizați parametri diferiți ca intrare.

În Method Overriding , metoda clasei părinte poate fi suprascrisă de clasa copil. Cu aceasta, aceeași metodă poate funcționa diferit atunci când este invocată de clasa părinte și de clasa copil.

Un exemplu de polimorfism este prezentat mai jos:

În acest exemplu, folosind aceeași metodă, putem efectua mai multe sarcini. Aceeași metodă Voce atunci când este folosită în Bird va scoate „Turr Turr” și când este folosită cu Duck va scoate „Quack Quack”. Instantaneul rezultatului este prezentat mai jos -

Abstracția

Abstracția este procesul de a ascunde anumite date de la utilizatori și de a le afișa doar informațiile necesare. De exemplu, în timp ce conducem o mașină, nu ne preocupă funcțiile sau mecanismele interne. Ceea ce ni se arată sunt viteza cu care se conduce mașina și litrii de benzină disponibili. Toate celelalte date marginalizate nu sunt afișate șoferului.

Cuvântul cheie abstract este folosit pentru metode și clase în timpul efectuării abstracției. Pentru o clasă abstractă, nu putem crea un obiect în timp ce metoda abstractă nu ar trebui să includă un corp. Dacă oricare dintre cele două reguli este încălcată, rezultatul va genera o eroare.

Aici, am creat un obiect al subclasei - Duck, care este moștenit din clasa principală - Bird. Ieșirea este afișată mai jos:

Încapsulare

Încapsularea este procesul de legare a codului și a datelor împreună într-o singură unitate. Aici, variabilele unei clase sunt ascunse de alte clase (prin folosirea cuvântului cheie private ), dar pot fi accesate doar printr-o funcție membru. Funcțiile setter și getter sunt folosite pentru a accesa variabilele private ale unei clase care este abstractă.

Până acum, am acoperit orice și tot ce are legătură cu programarea orientată pe obiecte folosind Java. Înainte de a încheia, să ne uităm la câteva dintre avantajele conceptului OOP.

  1. Codul poate fi reutilizat cu ușurință și, prin urmare, economisește mult timp și costuri pentru dezvoltarea codurilor.
  2. Ajută la proiectarea codului într-o manieră bine structurată, astfel încât orice programator nou să nu fie nevoit să petreacă ore lungi pentru a înțelege codul.
  3. Pe lângă faptul că ajută utilizatorii să scrie codul eficient, se asigură că securitatea nu este compromisă.

Finalizare: Întrebări și răspunsuri la interviu OOP

Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

În concluzie, în acest blog am acoperit conceptele de bază ale POO. Aceste concepte sunt utilizate pe scară largă în industrie și în alte aplicații. Pentru a deveni un programator competent, trebuie să aveți o înțelegere solidă a acestor concepte. În blogurile viitoare, vom descoperi câteva alte concepte esențiale de programare care vă vor ajuta să vă dezvoltați expertiza în acest domeniu.

Dacă sunteți interesat să aflați mai multe despre dezvoltarea de software full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea de software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte și misiuni, statutul de absolvenți IIIT-B, proiecte practice practice și asistență la locul de muncă cu firme de top.]

Ce este un factorial?

Un factorial este o operație matematică care numără produsul unui număr dat și toate numerele de sub acesta. Un factorial este un produs care indică de câte ori este înmulțit un număr cu unul. De exemplu, factorialul lui 5 este 5x4x3x2x1, care este egal cu 120. Factorialul 1 este 1, iar factorialul 0 este, de asemenea, 1. Programul pentru a găsi un factorial al unui număr este cea mai frecventă întrebare de interviu și este ceva asta ar trebui să fie pe vârful mâinii tale.

Cum se scrie un program recursiv factorial?

Factorialul unui număr n este definit ca n! = 1 × 2 × 3 × 4 × … × n. Factorialul lui 5 este 120. Funcția factorială este definită ca factorial(5) = 120. O funcție recursivă este o funcție care se autoinvocă. Acesta este un exemplu de funcție factorială în stil recursiv factorial(n) = n * factorial(n - 1). Scrierea unui program de recursivitate factorială este foarte simplă, iar codul este foarte asemănător cu versiunea iterativă. Pentru a scrie versiunea iterativă, folosim o variabilă numită n și o incrementăm cu unu și o înmulțim cu variabila numită prod, care ține evidența valorilor succesive ale lui n. Valoarea de ieșire este stocată și în variabila numită prod. În versiunea recursivă, încă folosiți o variabilă numită n. Cu toate acestea, nu aveți nevoie de o variabilă pentru a stoca valoarea prod și puteți returna direct prod din funcție.

Ce este recursiunea în programare?

Cuvântul recursie este derivat din cuvântul latin recurrere, care înseamnă a reveni. În majoritatea limbajelor de programare, o funcție care se numește singură se numește recursie. Acest proces de buclă continuă până când este atins cazul de bază, care nu este definit în nicio funcție recursivă. Recursiunea este o tehnică eficientă pentru rezolvarea unei probleme într-un mod structurat și organizat. Este o strategie bună de programare. De exemplu, problema seriei Fibonacci, problema factorială etc. pot fi rezolvate atât în ​​mod iterativ, cât și recursiv.