Što je OOP? - Načela s primjerima - Prednosti mane

Sadržaj:

Anonim

Što je OOP?

Objektno orijentirano programiranje (ili OOP) je paradigma programiranja u kojoj se programi pišu i strukturiraju oko objekata, a ne funkcija ili logike. Ovdje su objekti definirani kao polja podataka koja imaju jedinstvene atribute i ponašanje. Sadrže podatke u obliku atributa i postupaka u obliku metoda. Postupci objekata mogu pristupiti i mijenjati podatke prisutne u objektu.

Postoji mnogo OOP jezika, od kojih je najpopularniji na klasu, gdje će objekti biti instanca klase. Razred je spremnik podataka i postupaka, također poznat kao data data (član) i function member (funkcije članova). Razmotrimo primjer objekta kao automobil. Automobil ima atribute poput boje, marke, kapaciteta goriva itd. I ima metode za predstavljanje ponašanja automobila poput pokretanja, ubrzavanja, probijanja itd. Klasa je nacrt atributa i metoda i ne zauzima prostor, sve dok se ne napravi objekt te klase.

Primjer :

class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)

Objektno orijentirani programski ciljevi implementirani u programiranje, stvarnih entiteta poput nasljeđivanja, polimorfizma, enkapsulacije itd. Koje ćemo detaljno vidjeti. Glavni cilj OOP-a je zajedničko povezivanje podataka i funkcija koje na njima djeluju, tako da je tim podacima dostupan samo pomoću te funkcije.

Načela OOP-a

Četiri glavna principa objektno orijentiranog programiranja su kapsulacija, apstrakcija, nasljeđivanje i polimorfizam.

1. Inkapsulacija:

Vezivanje podataka i metoda u jednu cjelinu naziva se enkapsulacijom. Inkapsulacija se vrši kada svaki objekt unutar klase drži svoje stanje privatnim. Podaci unutar ove jedinice nisu dostupni vanjskim objektima, a samo one funkcije unutar ove jedinice mogu joj pristupiti. Dakle, objekt upravlja svojim stanjem uz pomoć svojih metoda, a za komunikaciju s tim objektom trebat će nam pomoć javnih metoda ove klase.

2. apstrakcija

Apstrakcija je produžetak enkapsulacije. To znači pružiti samo potrebne informacije vanjskom svijetu, skrivajući interne detalje provedbe. Otkrivaju samo odgovarajuće operacije za ostale objekte. Prednost ovog je u tome što možemo promijeniti implementaciju bez utjecaja na klasu, jer sučelje metoda ostaje isto.

Uzmimo za primjer kalkulator koji nam donosi ulaz i pritiskom na tipku daje nam željeni izlaz, štedeći nam interne detalje kako smo došli do tog odgovora.

3. Nasljeđivanje

Često su objekti slični u funkcionalnosti, dijele dio logike, ali se razlikuju u ostatku. Pa kako ponovo upotrijebiti uobičajenu logiku i odvojiti različitu logiku? To se može postići nasljeđivanjem. Nasljeđujućih stvaramo novu klasu koja se zove dječja klasa koja je izvedena iz postojeće klase koja se naziva roditeljska klasa i na taj način formira hier0archus klasa. Podređena klasa ponovno koristi podatkovna polja i metode koje zahtijeva od roditeljske klase, a samostalno implementira jedinstvenu funkcionalnost.

Na primjer, vozilo može biti roditeljska klasa iz koje možemo izvoditi razrede djece poput bicikla i automobila. Dijele ih zajednička svojstva mogućnosti pokretanja goriva i prevoza putnika, ali razlikuju se u broju putnika koje mogu prevoziti i više takvih svojstava.

4. Polimorfizam

Polimorfizam je sposobnost uzimanja više oblika. Pretpostavimo da imamo roditeljsku klasu i nekoliko njenih razreda. Sada želimo koristiti atribute i roditeljske i dječje klase, pa kako ćemo to postići? To se može učiniti pomoću polimorfizma. U polimorfizmu se apstraktni entiteti izvode na više načina. Omogućuje konzumiranje klase točno poput matične klase, tako da ne dolazi do zabune u miješanju vrste klasa, a svaka podređena klasa nastavlja svoje metode onakve kakve jesu. To se može učiniti ponovnom uporabom roditeljskog sučelja, tako da podređena klasa može primijeniti ove metode u svojoj vlastitoj verziji.

Prednosti objektno-orijentiranog programiranja

  • Ideja iz stvarnog svijeta može se pokazati, jer se sve u OOP-u tretira kao objekt.
  • Kako koristimo koncept kapsulacije, programe je lakše testirati i održavati.
  • Brži razvoj koda vrši se jer razrađujemo klase paralelno umjesto uzastopno.
  • OOP pruža veću sigurnost zbog apstrakcije podataka. Vanjski svijet ne može pristupiti skrivenim podacima.
  • Ponovna upotreba može se postići korištenjem klasa koje su već napisane.

Nedostaci objektno orijentiranog programiranja

  • Dizajn programa s OOP konceptom može biti težak.
  • Programer mora unaprijed planirati razvoj programa u OOP-u.
  • Veličina programa razvijenih s OOP-om veća je od onih razvijenih s proceduralnim pristupom.
  • Budući da su OOP programi veće veličine, vrijeme izvršenja tih programa je također više.

Kako poznavanje OOP-a može pomoći u razvoju karijere?

Mnogi od glavnih jezika današnjice, poput Jave i Ruby-a, koriste se objektno orijentiranim programskim konceptima. OOP jezici pomažu u pisanju softvera za aplikacije poput mobilnih, web i aplikacija za igre. Na tim poljima postoje velike zarade, poput najboljih mogućnosti za posao programera koji leže u tim poljima. Lako je prijeći na različite tehnologije i jezike s osnovama OOP-a i time nam se proširuju izgledi za karijeru. Jedan nedostatak u ovom događaju je stručnost. Poduzeća obično traže praktično iskustvo s OOP jezicima i konceptima, pa je preporučljivo vježbati dok nastavimo proces učenja.

Zaključak

Objektno orijentirano programiranje pojednostavljuje proces programiranja za nas. Ima mnoge vrijednosti poput ponovne upotrebe, učinkovitosti i održavanja koda. Iako je u početku možda teško razumjeti koncepte OOP-ova, uvjeravam vas da će voće biti vrijedno truda. Nadam se da je ovaj članak pomogao u pojednostavljivanju tih koncepata za vas!

Preporučeni članak

Ovo je vodič za Što je OOP? Ovdje smo razgovarali o pojmovima, definiciji i principima s prednostima i nedostacima OOP-a. Možete i proći naše druge predložene članke da biste saznali više -

  1. Je li Hadoop Open Source?
  2. Što je nasljeđivanje Java?
  3. Što je Multithreading u C #?
  4. Što su ASP.Net Web Services?