Oglas
Ako ste to učinili programiranje za početnikeili ste čak počeli gledati različite jezike, vjerojatno ste naišli na frazu "objektno orijentirano programiranje" (ili "OOP").
Postoje razne vrste tehničkih objašnjenja o tome o čemu se radi, ali danas ćemo pogledati definiranje objektno orijentiranog programa na jednostavan način.
Prije nego što započnemo: Proceduralni jezici
Da biste shvatili što je objektno orijentirani programski jezik, morate razumjeti što ga je zamijenilo. Rani programski jezici bili su proceduralni - takozvani jer je programer definirao vrlo specifičan skup postupaka koje će računalo provesti.
U najranijim danima postupci su pisani na bušilicama. Ti su koraci poduzeli podatke, izveli slijed radnji na tim podacima, a zatim ispisali nove podatke.
Proceduralni jezici jedno su vrijeme dobro funkcionirali (a neki se i dalje koriste). Ali kada želite programirati nešto izvan osnovnog slijeda koraka, procesni jezici mogu postati teški za upravljanje. Tamo dolazi objektno orijentirano programiranje.
Objektno objektno programiranje
Dakle, što je objektno orijentirano programiranje?
Prvi objektno orijentirani jezik (općenito prihvaćen kao Simula) uveo je ideju objekti. Objekti su zbirka podataka koja se tretiraju kao jedinstvena cjelina.
Uronit ćemo dublje u ono što zapravo znači u sekundi s primjerom, ali prvo moramo razgovarati klase. Razredi su poput predobjekata. Sadrže popis atributa koji, kada su definirani, postaju objekt.
Uzmimo za primjer programiranje igre u šahu. Možda imamo klasu koja se zove Piece. Unutar Piece-a imamo popis atributa:
- Boja
- Visina
- Oblik
- Kretanje je dopušteno
Objekt jednostavno definira jednu posebnu instancu stvari koja pripada toj klasi.
Tako bismo mogli imati objekt zvan WhiteQueen. Taj bi objekt imao definicije za sva četiri atributa (bijeli, visoki, cilindrični s crepelacijama, bilo koji broj razmaka u bilo kojem smjeru). Mogla bi i imati metode ili funkcije.
Što je ovo puno bolje od proceduralnog pristupa?
Ukratko, objektni programski jezici (poput Jave) olakšava organizaciju podataka i koda na način koji je svestraniji za veći projekt.
Da bismo to malo detaljnije raspravljali, govorit ćemo o četiri osnova objektno orijentiranog programiranja.
Objektno orijentirano programiranje: apstrakcija
To samo zato što želite koristiti nešto ne znači da morate znati kako to funkcionira. Na primjer, stroj za espresso je složen. Ali ne morate znati kako to funkcionira. Samo trebate znati da kad pritisnete "Uključeno", dobit ćete espresso.
Isto je i s objektima u objektno orijentiranom programiranju. U našem šahovskom primjeru možda imamo potez (). Ta metoda može zahtijevati puno podataka i drugih metoda. Možda će trebati početne i krajnje varijable položaja. Mogla bi se upotrijebiti druga metoda za utvrđivanje je li uhvaćen komad.
Ali to ne trebate znati. Sve što trebate znati je da kada kažete komadu da se kreće, on se kreće. To je apstrakcija.
Objektno orijentirano programiranje: kapsulacija
Inkapsulacija je jedan od načina na koji objektno orijentirano programiranje stvara apstrakciju. Svaki je objekt skup podataka koji se tretiraju kao jedinstveni entitet. A unutar tih objekata nalaze se i podaci - i varijable i metode.
Promjenjive se unutar objekta obično čuvaju kao privatne, što znači da im drugi objekti i metode ne mogu pristupiti. Na objekte može utjecati samo primjenom njihovih metoda.
Bishop predmet može sadržavati nekoliko informacija. Na primjer, mogla bi imati varijablu koja se zove "položaj". Ta je varijabla nužna za upotrebu poteza (move). I, naravno, ima boju.
Čineći varijablu pozicije privatnom, a metoda move () javnom, programer štiti pomičnu varijablu od bilo čega drugog. A ako je boja privatna varijabla, nema drugog načina da je promijeni, osim ako ne postoji metoda koja dopušta promjenu. (Koje vjerojatno ne biste imali, jer boja dijela treba ostati konstantna.)
Te se varijable i metode čuvaju unutar Bishop objekta. Budući da su u kapsuli, programer može promijeniti strukturu ili sadržaj objekta bez brige o javnom sučelju.
Objektno programirano: nasljeđivanje
Pored klasa, objektni programski jezici imaju i podklase. Sadrže sve atribute iz nadređene klase, ali mogu sadržavati i druge atribute.
U našoj šahovskoj igri, komadići zalagaonice trebaju metodu koja ih može pretvoriti u druge komade ako ih dovedu do kraja ploče. Nazvat ćemo ga metodom transformPiece ().
TransformPiece () nije potreban svaki dio. Pa ga ne bismo željeli svrstati u razred Piece. Umjesto toga, možemo stvoriti podklasu koja se zove Zalagač. Budući da je podklasa, nasljeđuje sve atribute iz Piece. Dakle, instanca podklase Zalog uključuje boju, visinu, oblik i dopušteno kretanje.
Ali također uključuje metodu transformPiece (). Sada se više ne moramo brinuti da li ćemo slučajno upotrijebiti tu funkciju na potezu. Evo tehničkog objašnjenja:
Stvaranje potklasa također štedi puno vremena. Umjesto da za sve stvore nove klase, programeri mogu stvoriti osnovnu klasu i zatim je proširiti na nove podklase kad trebaju. (Ipak, vrijedi to primijetiti pretjerano oslanjanje na nasljedstvo je loše 10 osnovnih načela programiranja koje svaki programer mora slijeditiUvijek napišite kôd koji može održavati svatko tko može završiti rad na vašem softveru. U tu svrhu, evo nekoliko programskih načela koja će vam pomoći da očistite svoj čin. Čitaj više .)
Objektno orijentirano programiranje: polimorfizam
Polimorfizam je rezultat nasljeđivanja. Potpuno razumijevanje polimorfizma zahtijeva neko znanje programiranja, tako da ćemo se ovdje držati osnova. Ukratko, polimorfizam omogućava programerima da koriste metode s istim imenom, ali s njima različitih predmeta.
Na primjer, naša klasa Piece može imati metodu move () koja pomiče komad jedan prostor u bilo kojem smjeru. To djeluje za kraljev komad, ali ne za ništa drugo. Da biste riješili taj problem, možemo definirati novu metodu move () u podklasi Rook koja definira kretanje kao neograničeni broj razmaka naprijed, natrag, lijevo ili desno.
Sada, kada programer prizove metodu move () i koristi komad kao argument, program će točno znati kako se komad treba kretati. To štedi tonu vremena tijekom pokušaja otkrivanja koje od mnogo različitih metoda trebate koristiti.
Objektno orijentirano programiranje u matici
Ako vam se glava malo vrti nakon ove posljednje četiri definicije, ne brinite se previše. Evo glavnih stvari koje morate zapamtiti:
- Objektno orijentirano programiranje prikuplja informacije u jedinstvene cjeline koje se nazivaju objekti.
- Svaki je objekt pojedinačna klasa klase.
- Apstrakcija skriva unutarnje funkcioniranje objekta kada ih nije potrebno vidjeti.
- Inkapsulacija pohranjuje povezane varijable i metode unutar objekata i štiti ih.
- Nasljeđivanje dopušta podklasama korištenje atributa iz roditeljskih klasa.
- Polimorfizam omogućuje predmetima i metodama da se bave s više različitih situacija s jednim sučeljem.
Ako se sjećate tih točaka, dobro ćete se baviti onim što je objektno orijentirano programiranje. Kao što sam spomenuo, četiri osnove objektno orijentiranog programiranja mogu biti malo teške za rješavanje. Ali kada počnete programirati, postat će jasniji.
Imajte na umu da smo u ovom članku razgovarali samo o općenitostima. Različiti objektno orijentirani jezici imat će svoje osobine i načine da se stvari dogode. Jednom kad ti odaberite pravi jezik za vas Tražite najbolje jezike za programiranje? Započni ovdje!Bez obzira jeste li potpuno novi u programskim jezicima ili želite uskočiti u novu vrstu programiranja, jedno od najvažnijih pitanja koje treba postaviti je: "Koji programski jezik je prikladan za mene?" Čitaj više , počet ćete učiti kako to primjenjuju OOP načela.
Dann je sadržajna strategija i marketinški savjetnik koji pomaže tvrtkama da generiraju potražnju i vode. Također, na dannalbright.com piše blogove o marketingu strategije i sadržaja.