object oriented programming c
Uvod u objektno orijentirano programiranje na jeziku C ++.
Ovim vodičem započinjemo seriju vodiča za učenje o C ++-u kao objektno orijentiranom programskom jeziku.
Kao što znamo, prije objektno orijentiranog programiranja (OOP) programi su se napisali na proceduralnim jezicima. Procesni jezici naglašavaju funkcije. Veći se problemi raščlanjuju na manje potprobleme i zapisuju kao funkcije.
=> Pogledajte ovdje kako biste istražili cjeloviti popis vodiča za C ++.
Procesni jezici nisu obraćali pažnju na podatke. Kao rezultat toga, bila je velika mogućnost da se problem ne riješi na učinkovit način. Također, budući da su podaci bili gotovo zanemareni, sigurnost podataka lako je bila ugrožena.
Sve ove nedostatke proceduralnog programiranja prevladali su objektno orijentirano programiranje.
U ovom uputstvu raspravit ćemo o osnovama objektno orijentiranog programiranja i ukratko o svim značajkama OOP-a.
Što ćete naučiti:
- Objektno orijentirano programiranje na jeziku C ++
- Zašto je C ++ djelomični OOP?
- OOP značajke
- Prednosti OOP-a
- Zaključak
- Preporučena literatura
Objektno orijentirano programiranje na jeziku C ++
Objektno orijentirano programiranje vrti se oko podataka. Glavna programska jedinica OOP-a je objekt. Objekt je prikaz entiteta u stvarnom vremenu i sastoji se od podataka i metoda ili funkcija koje djeluju na podatke. Na taj su način podaci i funkcije usko povezani i osigurana je sigurnost podataka.
U OOP-u je sve predstavljeno kao objekt, a kada se programi izvršavaju, objekti međusobno komuniciraju prosljeđivanjem poruka. Objekt ne mora znati detalje implementacije drugog objekta za komunikaciju.
Osim objekata, OOP podržava i razne značajke koje su navedene u nastavku:
- Nastava
- Kapsulacija
- Apstrakcija
- Nasljeđivanje
- Polimorfizam
Koristeći OOP, pišemo programe koristeći klase i objekte koristeći se gore navedenim značajkama. Za programski jezik se kaže da je pravi objektno orijentirani programski jezik ako sve što predstavlja koristi objekt. Smalltalk je jedan jezik koji je čisti objektno orijentirani programski jezik.
S druge strane, za programske jezike poput C ++ i Java kaže se da su djelomično objektno orijentirani programski jezici.
Zašto je C ++ djelomični OOP?
Jezik C ++ dizajniran je s glavnom namjerom da se objektno orijentirane značajke koriste jeziku C.
Iako jezik C ++ podržava značajke OOP-a poput klasa, objekata, nasljeđivanja, inkapsulacije, apstrakcije i polimorfizma, malo je razloga zbog kojih je C ++ klasificiran kao djelomični objektno orijentirani programski jezik.
kako deklarirati niz objekata u javi
U nastavku donosimo nekoliko ovih razloga:
# 1) Izrada klase / objekata nije obavezna
U C ++-u je glavna funkcija obavezna i uvijek je izvan klase. Stoga u programu možemo imati samo jednu glavnu funkciju, a možemo i bez klasa i objekata.
Ovo je prvo kršenje Pure OOP jezika gdje je sve predstavljeno kao objekt.
# 2) Korištenje globalnih varijabli
C ++ ima koncept globalnih varijabli koje su deklarirane izvan programa i kojima može pristupiti bilo koji drugi entitet programa. To krši inkapsulaciju. Iako C ++ podržava enkapsulaciju s obzirom na klase i objekte, ne brine se o tome u slučaju globalnih varijabli.
# 3) Prisutnost prijateljske funkcije
C ++ podržava klasu prijatelja ili funkciju koja se može koristiti za pristup privatnim i zaštićenim članovima drugih klasa čineći ih prijateljima. Ovo je još jedna značajka C ++-a koja krši OOP paradigmu.
Da zaključimo, iako C ++ podržava sve gore spomenute značajke OOP-a, on također nudi značajke koje mogu poslužiti kao rješenje za ove značajke, tako da možemo i bez njih. To čini C ++ djelomičnim objektno orijentiranim programskim jezikom.
OOP značajke
Ovdje ćemo predstaviti razne OOP značajke koje se koriste za programiranje.
Predavanja i predmeti
Objekt je osnovna jedinica u objektno orijentiranom programiranju. Objekt sadrži podatke i metode ili funkcije koje djeluju na te podatke. Predmeti zauzimaju prostor u memoriji.
S druge strane, klasa je nacrt predmeta. Suprotno tome, objekt se može definirati kao instanca klase. Klasa sadrži kostur predmeta i ne zauzima prostor u memoriji.
Uzmimo Primjer predmeta automobila. Objekt automobila s imenom 'Maruti' može imati podatke poput boje; make, model, ograničenje brzine itd. i funkcije poput ubrzanja. Definiramo drugi objekt 'ford'. Ovo može imati slične podatke i funkcije poput prethodnog objekta, plus još neke dodatke.
Slično tome, možemo imati brojne objekte različitih imena koji imaju slične podatke i funkcije i neke manje varijacije.
Stoga, umjesto da definiramo ove slične podatke i funkcije u tim različitim objektima, mi definiramo nacrt tih objekata koji je klasa koja se zove Car. Svaki od gornjih predmeta bit će primjerci automobila ove klase.
Apstrakcija
Apstrakcija je postupak skrivanja nebitnih podataka od korisnika. Na primjer , kada vozimo automobil, prvo palimo motor umetanjem ključa. Nismo svjesni postupka koji se odvija u pozadini pokretanja motora.
Korištenjem apstrakcije u programiranju možemo sakriti nepotrebne detalje od korisnika. Korištenjem apstrakcije u našoj aplikaciji, to neće utjecati na krajnjeg korisnika čak i ako promijenimo internu implementaciju.
pitanja za selenski intervju za 8 godina iskustva
Kapsulacija
Inkapsulacija je postupak pomoću kojeg se podaci i metode ili funkcije koje djeluju na njima grupiraju zajedno. Čineći to, podaci nisu lako dostupni vanjskom svijetu. U OOP-u postižemo inkapsulaciju čineći članove podataka privatnima i imajući javne funkcije za pristup tim članovima podataka.
Nasljeđivanje
Korištenje nasljednog objekta jedne klase može naslijediti ili steći svojstva objekta druge klase. Nasljeđivanje omogućuje ponovnu upotrebu koda.
Kao takvi možemo dizajnirati novu klasu stjecanjem svojstava i funkcionalnosti druge klase i u ovom procesu ne moramo modificirati funkcionalnost roditeljske klase. Predmetu dodajemo samo novu funkcionalnost.
Polimorfizam
Polimorfizam znači mnoge oblike.
Polimorfizam je važna značajka OOP-a i obično se provodi kao preopterećenje operatora ili preopterećenje funkcije. Preopterećenje operatora postupak je u kojem se operator ponaša različito u različitim situacijama. Slično tome, kod preopterećenja funkcije, ista se funkcija ponaša različito u različitim situacijama.
Dinamičko povezivanje
OOP podržava dinamičko vezanje u kojem se poziv funkcije rješava za vrijeme izvođenja. To znači da se za vrijeme izvođenja odlučuje o kodu koji će se izvršiti kao rezultat poziva funkcije. Virtualne funkcije su primjer dinamičkog vezanja.
Poruka prolazi
U OOP-u objekti međusobno komuniciraju pomoću poruka. Kada objekti komuniciraju, informacije se prenose naprijed-natrag između objekata. Poruka se obično sastoji od naziva objekta, naziva metode i stvarnih podataka koji se trebaju poslati drugom objektu.
Prednosti OOP-a
Razmotrimo neke od prednosti OOP-a.
# 1) Ponovna upotrebljivost
OOP omogućuje ponovnu upotrebu postojećeg koda kroz nasljeđivanje. Lako možemo nabaviti postojeću funkcionalnost i poboljšati je bez potrebe za ponovnim prepisivanjem koda. To rezultira manje napuhanim kodom.
# 2) Modularnost
Kako moduliramo program u OOP-u, lako je izmijeniti ili riješiti problem ako se pojavi problem ili se doda nova značajka ili poboljšanje. Modularizacija također pomaže u jasnoći koda i čini ga čitljivijim.
# 3) Fleksibilnost
OOP nam pomaže u fleksibilnom programiranju koristeći značajku polimorfizma. Kako polimorfizam ima mnogo oblika, možemo imati operatore ili funkcije koji će raditi s mnogim objektima i tako nas spasiti od pisanja različitih funkcija za svaki objekt.
# 4) Održavanje
Održavanje koda je jednostavnije jer je lako dodati nove klase, objekte itd. Bez puno restrukturiranja ili promjena.
# 5) Sakrivanje podataka i informacija
OOP nam pomaže u skrivanju podataka i tako čuva informacije od curenja. Korisniku su izloženi samo podaci koji su potrebni za nesmetano funkcioniranje programa skrivanjem nužnih detalja.
Zaključak
OOP je najvažnija i fleksibilna programska paradigma suvremenog programiranja. Posebno je koristan u modeliranju problema iz stvarnog svijeta i stoga je vrlo popularan.
U ovom smo tutorijalu raspravljali o raznim značajkama OOP-a. U nastavku ćemo detaljno razgovarati o svim tim značajkama.
Sljedeća tema u ovoj seriji 'OOP s C ++' bit će usredotočena na razrede i objekte u pojedinostima.
=> Kliknite ovdje za apsolutnu C ++ seriju treninga.
Preporučena literatura
- OOP Java: Uvod u objektno orijentirano programiranje u Javi
- Vrste podataka C ++
- 10 najboljih alata za znanost o podacima u 2021. godini za uklanjanje programiranja
- Apstrakcija podataka u C ++
- Uvod u strukture podataka na C ++
- Vodič za Unix cijevi: Cijevi u Unix programiranju
- QTP vodič br. 8 - Saznajte više o načinima QTP snimanja, objektnom špijunu i spremištima objekata
- 70+ NAJBOLJIH Vodiča za C ++ za BESPLATNO učenje C ++ programiranja