Sadržaj[Sakrij][Prikaži]
- 1. Šta je zapravo objektno orijentirano programiranje?
- 2. Zašto su OOP-ovi neophodni?
- 3. Koje prednosti nude principi OOPS-a?
- 4. Koji su stubovi koncepta OOP?
- 5. Šta je zapravo klasa?
- 6. Šta je zapravo objekat?
- 7. Koja su ograničenja OOP-a?
- 8. Šta je nasleđivanje?
- 9. Šta je tačno inkapsulacija?
- 10. Šta je polimorfizam?
- 11. Šta je zapravo apstrakcija?
- 12. Šta je zapravo preopterećenje metode?
- 13. Šta je zapravo nadjačavanje metode?
- 14. Šta je tačno superklasa?
- 15. Šta je tačno potklasa?
- 16. Šta je zapravo statički polimorfizam?
- 17. Šta je zapravo dinamički polimorfizam?
- 18. Opišite pojam konstruktora.
- 19. Šta su tačno modifikatori pristupa?
- 20. Šta je zapravo destruktor?
- 21. Šta je zapravo hibridno nasljeđivanje?
- 22. Šta je tačno hijerarhijsko nasljeđivanje?
- 23. Koji su nedostaci nasljeđivanja?
- 24. Šta je tačno izuzetak?
- 25. Šta je tačno obrada izuzetaka i koje su njegove prednosti?
- 26. Šta su zapravo virtualne funkcije?
- 27. Šta je zapravo funkcija prijatelja?
- 28. Šta je zapravo odvoz smeća?
- 29. Šta je tačno sprega?
- 30. Šta je tačno kohezija?
- 31. Opišite try/catch blok.
- 32. Opišite završni blok.
- 33. Šta je zapravo interfejs?
- 34. Šta je zapravo kompozicija?
- 35. Šta je zapravo ulančavanje konstruktora?
- zaključak
Jedna od najutjecajnijih programskih paradigmi naziva se OOP, ili objektno orijentirano programiranje. Umjesto funkcija i procesa, naglašava klase i objekte.
Njegov glavni cilj je da poveže podatke i stvari tako da je lakše raditi s njima. Svaki objekat u OOP-u se sastoji od koda u obliku procedura ili metoda i podataka u obliku polja.
Jezici poput C++, Objective C, Python, Perl i Java neki su od najpopularnijih objektno orijentiranih programski jezici.
Od ključne je važnosti razumjeti više o ovome jer su pitanja za intervju vrlo tipična. Većina firmi traži inženjere koji su upoznati sa objektno orijentisanim metodama i obrascima. Dakle, ako namjeravate prisustvovati intervjuu, morate biti dobro upućeni u OOP ideje.
U ovom postu će biti prikazana razna pitanja za intervju za objektno orijentirano programiranje od početničkog do stručnog nivoa. Stoga možete proći bilo koji nivo intervjua i osigurati poziciju iz snova.
1. Šta je zapravo objektno orijentirano programiranje?
Programiranje koje je objektno orijentirano (OOP) temelji se na stvarnim objektima, a ne samo na funkcijama i procesima. Klase se kreiraju za pojedinačne proizvode.
Nasljeđivanje, polimorfizam i prikrivanje primjeri su koncepata iz stvarnog svijeta koje OOP-ovi uključuju u programiranje. Također omogućava povezivanje podataka i koda.
2. Zašto su OOP-ovi neophodni?
Postoji nekoliko razloga zašto su OOP poželjniji, međutim, sljedeći su najvažniji:
- OOP, omogućavaju ljudima da lako shvate softver čak i ako nisu upoznati sa implementacijom.
- Ups, poboljšajte čitljivost koda, razumljivost i mogućnost održavanja za faktor deset.
- Koristeći OOP, čak i izuzetno velike aplikacije mogu se jednostavno izgraditi i kontrolirati.
3. Koje prednosti nude principi OOPS-a?
- OOPS, programski objekti simuliraju objekte stvarnog svijeta, smanjujući složenost i povećavajući jasnoću programa.
- Objekti se mogu više puta koristiti u mnogim programima.
- Svaki objekat kreira poseban entitet čije su unutrašnje operacije nezavisne od drugih komponenti sistema.
- Uvođenjem nekoliko novih objekata i ažuriranjem nekoliko već postojećih moguće je dodati nove funkcionalnosti ili prilagoditi promjenjivim uvjetima rada.
- Procesi ili reprezentacija podataka OOPs programa mogu lako biti podvrgnuti malim prilagodbama.
4. Koji su stubovi koncepta OOP?
Ovo su glavni stubovi OOP-a:
nasljeđe: Omogućuje klasama da naslijede atribute druge klase.
Inkapsulacija: Ovo je definirano kao svojstvo objekta koje skriva kritične informacije. Time se podaci skrivaju od članova klase. Specifikatori opisuju kako se pristupa atributu objekta u kodu.
Polimorfizam: Ovo vam omogućava da izvršite jednu aktivnost na nekoliko načina. Ostvaruje se kroz interfejse, u kojima deklarišemo jedan interfejs koji se naknadno implementira nekoliko puta.
Apstrakcija: Ovu funkciju možete koristiti da sakrijete kritične informacije od vanjskog svijeta i predstavite samo bitne činjenice.
5. Šta je zapravo klasa?
Klasa je prototip sastavljen od objekata u različitim stanjima i različitog ponašanja. Ima brojne metode koje dijele objekti u toj klasi.
6. Šta je zapravo objekat?
Objekt je entitet iz stvarnog svijeta koji služi kao osnovna jedinica OOP-a, kao što je stolica, mačka ili pas. Različiti objekti imaju različita stanja, svojstva i radnje.
7. Koja su ograničenja OOP-a?
- Veličina je veća nego kod drugih aplikacija.
- Potrebno je naviknuti se.
- Određene vrste problema to ne zahtijevaju.
- Bilo je radno intenzivno za kreiranje, a u poređenju sa drugim aplikacijama, radi sporije.
8. Šta je nasleđivanje?
Pojam koji se zove nasljeđivanje odnosi se na dijeljenje uspostavljene strukture i ponašanja klase od strane druge klase. Kada se nasljeđivanje primjenjuje na jednu klasu, ono se naziva jednostruko nasljeđivanje; kada zavisi od mnogih klasa, naziva se višestrukim nasljeđivanjem.
9. Šta je tačno inkapsulacija?
Ideja OOP-a uključuje i enkapsulaciju. Opisuje mešanje podataka i tehnika manipulacije podacima. Osim toga, pomaže u sprječavanju direktnog pristupa nekim dijelovima objekta.
10. Šta je polimorfizam?
U OOP jezicima, polimorfizam je osnovni koncept. Pokazuje kako različite klase mogu dijeliti interfejs. Sve ove klase mogu imati jedinstvene implementacije interfejsa.
11. Šta je zapravo apstrakcija?
Apstrakcija je koncept objektno orijentiranog programiranja (OOP) koji se koristi za kreiranje strukture objekata u stvarnom svijetu. Ona “prikazuje” samo najvažnije kvalitete i “skriva” strane informacije iz vanjskog svijeta. Osnovni cilj apstrakcije je zaštititi ljude od nepotrebnih informacija.
12. Šta je zapravo preopterećenje metode?
Moguće je da dvije ili više procedura imaju isto ime. Oni bi, međutim, trebali imati različite parametre, različit broj parametara, različite vrste ili oboje. One su poznate kao preopterećene metode, a funkcija je poznata kao preopterećenje metoda.
13. Šta je zapravo nadjačavanje metode?
Objektno orijentirano programiranje uključuje ideju nadjačavanja metoda. To je jezička karakteristika koja omogućava podklasi ili podređenoj klasi da ponudi prilagođenu implementaciju metode koju jedna od njenih nadklasa ili roditeljskih klasa već nudi.
14. Šta je tačno superklasa?
Superklasa, često poznata kao bazna klasa, je tip klase koja se ponaša kao roditelj druge klase ili klasa. Klasa Car, na primjer, ima podklasu koja se zove Vehicle.
15. Šta je tačno potklasa?
Potklasa je potklasa druge klase. Kombi je, na primjer, potklasa vozila ili izvedena klasa.
16. Šta je zapravo statički polimorfizam?
U vrijeme kompajliranja odvija se tip polimorfizma poznat kao statički polimorfizam (statičko vezivanje). Preopterećenje metode je vrsta polimorfizma u vremenu prevođenja.
17. Šta je zapravo dinamički polimorfizam?
Vrsta polimorfizma koja se rješava u vremenu izvođenja naziva se polimorfizam vremena izvođenja, također poznat kao dinamički polimorfizam (dinamičko povezivanje). Nadjačavanje metoda je ilustracija polimorfizma vremena izvršavanja.
18. Opišite pojam konstruktora.
Konstruktor je specifična metoda klase koja se automatski poziva kada se instanca klase kreira. Kada pristupite klasi, ona se konstruiše sa istim imenom kao i klasa i inicijalizuje sve njene članove. Primarne karakteristike konstruktora su sljedeće:
Ne postoji tip povratka za konstruktore.
Moguće je preopterećenje konstruktora.
Nije potrebno specificirati konstruktor; .NET Framework će to učiniti automatski.
19. Šta su tačno modifikatori pristupa?
U objektno orijentisanim jezicima, ključne riječi su modifikatori pristupa ili specifikacije pristupa. Pomaže u konfiguraciji klasa, metoda i pristupačnosti drugih članova.
20. Šta je zapravo destruktor?
Destruktor je metoda za oslobađanje resursa dodijeljenih objektu. Kada se objekat uništi, ova metoda se automatski poziva.
21. Šta je zapravo hibridno nasljeđivanje?
Hibridno nasljeđivanje je vrsta nasljeđivanja nastala miješanjem nekoliko oblika nasljeđivanja kao što su jednostruko, višestruko i tako dalje.
22. Šta je tačno hijerarhijsko nasljeđivanje?
Više podklasa nasljeđuje od roditeljske klase u situaciji hijerarhijskog nasljeđivanja. Vrsta nasljeđivanja u kojoj brojne klase potiču od jedne roditeljske ili osnovne klase poznata je kao hijerarhijsko nasljeđivanje. Na primjer, klasa voća može sadržavati podklase kao što su "jabuka", "mango", "banana", "trešnja" i tako dalje.
23. Koji su nedostaci nasljeđivanja?
To produžava i komplikuje proces izvršenja. To također zahtijeva prebacivanje između različitih klasa. Klase roditelja i djece uvijek su neraskidivo povezane.
Izmjene nastavnog plana i programa zahtijevale bi revizije i za roditeljski i za djetetov razred. Nasljeđivanje se mora provoditi pažljivo ili će rezultati biti pogrešni.
24. Šta je tačno izuzetak?
Izuzetak je incident koji ometa uobičajen rad koda. Da biste nastavili s izvršavanjem, možete obraditi ove izuzetke u Javi. U Javi postoji mnogo vrsta unaprijed definiranih izuzetaka, a rukovanje izuzecima je omogućeno za kontrolu podignutih izuzetaka pomoću blokova try-catch.
25. Šta je tačno obrada izuzetaka i koje su njegove prednosti?
Najvažniji metod u Javi za suočavanje sa neočekivanim kvarovima tokom izvođenja je rukovanje izuzetcima. Omogućava vam da kontrolišete greške u toku izvođenja koje nastaju tokom izvršavanja programa.
Prednosti rukovanja izuzecima uključuju mogućnost zadržavanja redovnog toka programa dok se upravlja izuzecima. Na primjer, ako se greška dogodi u jednom dijelu programa, ona neće imati utjecaja na ostatak programa ako obradimo izuzetak pomoću blokova try-catch.
26. Šta su zapravo virtualne funkcije?
Virtualne funkcije su također uključene u funkcije roditeljske klase i potklasa ih nadjačava. Ove rutine pomažu u postizanju polimorfizma vremena izvođenja.
27. Šta je zapravo funkcija prijatelja?
Funkcija prijatelja je funkcija koja pripada klasi i kojoj je dozvoljen pristup njenim javnim, privatnim ili zaštićenim podacima. Ako je funkcija definirana izvan klase, nije moguće dohvatiti ove podatke. Ključne riječi za kontrolu pristupa private, public i protected nemaju nikakvog značaja za deklaraciju prijatelja, koja se može napraviti bilo gdje u deklaraciji klase.
28. Šta je zapravo odvoz smeća?
Sakupljanje smeća (GC) je element programskih jezika poput C# i Java koji služi kao sistem za oporavak memorije. Mašina za sakupljanje smeća (GC) je komponenta programskog jezika koja omogućava automatsko oslobađanje memorijskog prostora za objekte koje aplikacija više ne koristi.
29. Šta je tačno sprega?
Odnosi se na situacije u kojima se različite klase oslanjaju jedna na drugu i dijele znanje. Jaka veza nastaje kada jedna klasa ima detaljno znanje o drugoj klasi. Možete odrediti vidljivost klasa, metoda ili varijabli koristeći modifikatore pristupa. Interfejsi se koriste da obezbede slabiju spregu.
30. Šta je tačno kohezija?
Način na koji komponenta ostvaruje određenu aktivnost naziva se njena kohezija. Snažan, kohezivni pristup jednostavno će obaviti definirani zadatak, dok bi slaba, kohezivna metoda podijelila jedan zadatak na nekoliko manjih zadataka i zatim ih završila.
Java.io paket je prilično koherentan, ali paket java.util nije.
31. Opišite try/catch blok.
Kada program naiđe na grešku zbog pogrešnog koda ili podataka, "pokušaj" i "uhvati" označavaju kako se njime upravlja. Blok pokušaja je naziv dijela koda kada se pojave izuzeci. Blok catch se koristi za hvatanje i rješavanje izuzetaka iz blokova pokušaja.
32. Opišite završni blok.
Radni dio koda ključne riječi try je posljednji. Označava kod koji se uvijek pokreće odmah nakon probe i sve blokove catch prije nego što se metoda dovrši. Završni blok se uvijek izvodi bez obzira na to da li je izuzetak izbačen ili uhvaćen.
33. Šta je zapravo interfejs?
Interfejs je kombinacija apstraktnih metoda i korisnički definiranog tipa podataka. Klasa implementira interfejs, nasleđujući apstraktne funkcije interfejsa.
Klasa predstavlja svojstva i ponašanja objekta, dok interfejs uključuje ponašanja koja klasa implementira. Interfejs predstavlja „šta“, dok klasa prenosi „kako“.
34. Šta je zapravo kompozicija?
Kompozicija se može koristiti za postizanje veze. Pokazuje snažnu vezu između zavisnih i nezavisnih objekata, za razliku od agregacije. Zavisni objekt ne postoji u ovoj situaciji i bit će uklonjen ako se roditeljski objekt izbriše.
35. Šta je zapravo ulančavanje konstruktora?
Lančano povezivanje konstruktora je tehnika za pozivanje jednog konstruktora iz drugog u odnosu na trenutnu referencu objekta. Postoje dvije opcije:
- Konstruktor u trenutnoj klasi može se referencirati pomoću ključne riječi “this”.
- Ključna riječ “super” će se koristiti za pozivanje konstruktora iz osnovne klase.
zaključak
Objektno orijentirano programiranje zahtijeva razmišljanje o strukturi programa i pripremu unaprijed. Ispitivanje kako podijeliti zahtjeve na osnovne, višekratne klase koje se mogu koristiti za kreiranje instanci stvari.
Sve u svemu, prihvatanje OOP-a omogućava poboljšanje strukture podataka i ponovnu upotrebu, što dugoročno štedi vrijeme. Vidi Hashdork's Interview Series za pomoć u pripremi intervjua.
Ostavite odgovor