top 30 oops interview questions
Ovaj tutorial pruža cjelovit set često postavljanih pitanja i odgovora na pitanja o objektno orijentiranom programiranju (OOP):
Razvoj softvera ima oko 70 i više godina povijesti u kojoj su izumljeni razni jezici poput FORTRAN, Pascal, C, C ++. Niz je izjava koje djeluju kao naredbe dane hardveru za izvođenje nekih osnovnih matematičkih izračuna, čineći proceduralne jezike za dizajniranje različitih softverskih aplikacija.
Izumom Interneta, sigurni, stabilni i neovisni o platformi i robusni jezici bili su potrebni za dizajniranje složenih aplikacija.
Objektno orijentirano programiranje neovisno je o platformi, prijenosno je, osigurano i opremljeno raznim konceptima poput enkapsulacije, apstrakcije, nasljeđivanja i polimorfizma.
Prednosti OOPS-a su ponovna upotrebljivost, proširivost i modularnost koji poboljšavaju produktivnost, jednostavniji za održavanje zbog modularnosti, brži i niži trošak razvoja zbog ponovne upotrebe koda, proizvodi sigurne i visokokvalitetne aplikacije.
Što ćete naučiti:
Osnovni koncepti objektno orijentiranog programiranja
Objektno orijentirano programiranje uključuje intelektualne objekte, podatke i ponašanje povezano s njima kako bi se donijela rješenja za poslovne probleme. U programskom jeziku Java, za dizajniranje rješenja za poslovne probleme, programeri primjenjuju koncepte kao što su apstrakcija, inkapsulacija, nasljeđivanje i polimorfizam.
Razni pojmovi kao što su Apstrakcija koja zanemaruje nebitne detalje, Kapsulacija koji se usredotočuje na minimum koji je potreban bez otkrivanja bilo kakvih složenosti unutarnjih funkcionalnosti, Nasljeđivanje naslijediti svojstva nadređene klase ili implementirati više nasljeđa koristeći sučelje i Polimorfizam koji proširuje svojstva preopterećenja metode (statički polimorfizam) i nadjačavanja metode (dinamički polimorfizam).
Najčešća pitanja o intervjuu za OOPS
P # 1) Objasnite ukratko što podrazumijevate pod objektno orijentiranim programiranjem na Javi?
Odgovor: OOP se bavi objektima, poput stvarnih entiteta kao što su olovka, mobitel, bankovni račun koji ima stanje (podaci) i ponašanje (metode).
Uz pomoć pristupa osiguravači dobivaju pristup tim podacima i metodama. Koncepti enkapsulacije i apstrakcije nude skrivanje podataka i pristup osnovnim stvarima, nasljeđivanju i polimorfizmu pomažu ponovnoj upotrebi koda i preopterećenju / nadjačavanju metoda i konstruktora, čineći aplikacije neovisnima o platformi, sigurnim i robusnim koristeći jezike poput Jave.
P # 2) Objasnite Je li Java čisti objektno orijentirani jezik?
Odgovor: Java nije posve čisti objektno orijentirani programski jezik. Slijede razlozi:
- Java podržava i koristi primitivne vrste podataka kao što su int, float, double, char itd.
- Primitivni tipovi podataka pohranjuju se kao varijable ili na stogu umjesto hrpe.
- U Javi statičke metode mogu pristupiti statičkim varijablama bez upotrebe objekta, suprotno objektno orijentiranim konceptima.
P # 3) Opišite klasu i objekt u Javi?
Odgovor: Klasa i objekt igraju integralnu ulogu u objektno orijentiranim programskim jezicima poput Jave.
- Klasa je prototip ili predložak koji ima stanje i ponašanje koje podržava objekt i koristi se u stvaranju objekata.
- Objekt je instanca klase, na primjer, Čovjek je klasa sa državom koja ima kralješnički sustav, mozak, boju i visinu i ponaša se poput canThink (), ableToSpeak () itd.
P # 4) Koje su razlike između klase i objekata u Javi?
Odgovor: Slijedi nekoliko glavnih razlika između klase i objekata u Javi:
Razred | Objekt |
---|---|
Primjeri nastave iz stvarnog života mogu biti a • Recept za pripremu hrane. • Plavi otisci za automobilski motor. | Primjeri predmeta u stvarnom životu mogu biti • Hrana pripremljena po receptu. • Motor izrađen prema plavim ispisima. |
Klasa je logičan entitet | Objekt je fizički entitet |
Klasa je predložak iz kojeg se može stvoriti objekt | Objekt je instanca klase |
Klasa je prototip koji ima stanje i ponašanje sličnih objekata | Predmeti su entiteti koji postoje u stvarnom životu poput mobilnih uređaja, miša ili intelektualnih predmeta poput bankovnog računa |
Predmet se deklarira ključnom riječju klase poput klase Classname {} | Objekt se stvara pomoću nove ključne riječi kao Employee emp = new Employee (); |
Tijekom stvaranja klase ne dodjeljuje se memorija | Tijekom stvaranja objekta, memorija se dodjeljuje objektu |
Postoji samo jednosmjerna klasa koja se definira pomoću ključne riječi class | Stvaranje objekata može se izvršiti na više načina, poput korištenja nove ključne riječi, newInstance () metode, clone () i tvorničke metode. |
P # 5) Zašto je potrebna objektno orijentirano programiranje?
Odgovor: OOP pruža specifikatore pristupa i značajke skrivanja podataka za veću sigurnost i kontrolu pristupa podacima, preopterećenje se može postići preopterećenjem funkcija i operatora, ponovna upotreba koda je moguća jer se već stvoreni objekti u jednom programu mogu koristiti u drugim programima.
Prekomjernost podataka, održavanje koda, sigurnost podataka i prednost koncepata poput enkapsulacije, apstrakcije, polimorfizma i nasljeđivanja u objektno orijentiranom programiranju pružaju prednost u odnosu na prethodno korištene proceduralne programske jezike.
P # 6) Objasnite apstrakciju primjerom u stvarnom vremenu.
Odgovor: Apstrakcija u objektno orijentiranom programiranju znači skrivanje složenih unutarnjih dijelova, ali izlaganje samo bitnih karakteristika i ponašanja s obzirom na kontekst. U stvarnom životu primjer apstrakcije je internetska košarica, recimo na bilo kojoj web lokaciji e-trgovine. Nakon što odaberete proizvod i naručite knjigu, samo vas zanima primanje proizvoda na vrijeme.
Kako se stvari događaju nije ono što vas zanima, jer je složeno i skriveno. To je poznato kao apstrakcija. Slično tome, uzmimo primjer bankomata, složenost internih podataka o načinu na koji se novac tereti s vašeg računa ostaje skrivena, a gotovinu primate putem mreže. Slično za automobile, način na koji benzin čini motor motorom izuzetno je složen.
P # 7) Dajte nekoliko primjera u stvarnom vremenu i objasnite nasljeđivanje.
Odgovor: Nasljeđivanje znači da jedna klasa (potklasa) stječe svojstva druge klase (super klasa) nasljeđivanjem. U stvarnom životu uzmimo primjer nasljeđivanja normalnog bicikla gdje je to roditeljska klasa, a sportski bicikl može biti dječji razred, gdje je sportski bicikl naslijedio svojstva i ponašanje rotacijskih kotača s pedalama preko zupčanika kao i kod normalnog bicikla.
P # 8) Kako polimorfizam djeluje na Javi, objasnite primjerima iz stvarnog života?
Odgovor: Polimorfizam je sposobnost višestrukog oblika ili sposobnost metode da radi različite stvari. U stvarnom se životu ista osoba koja obavlja različite dužnosti ponaša drugačije. U uredu je zaposlenik, kod kuće je otac, za vrijeme školovanja ili nakon školovanja, student je, vikendom igra kriket i igra na igralištu.
naredba sort u unixu s primjerom
U Javi postoje dvije vrste polimorfizma
- Vrijeme kompilacije polimorfizam: To se postiže preopterećenjem metode ili operativnim preopterećenjem.
- Izvršni polimorfizam: To se postiže nadjačavanjem metode.
P # 9) Koliko je vrsta nasljedstva prisutno?
Odgovor: U nastavku su navedene razne vrste nasljeđivanja:
- Jedno nasljeđivanje: Klasa jednog djeteta nasljeđuje karakteristike klase samohranih roditelja.
- Višestruko nasljeđivanje: Jedna klasa nasljeđuje značajke više od jedne osnovne klase i nije podržana u Javi, ali klasa može implementirati više od jednog sučelja.
- Nasljeđivanje na više nivoa: Klasa može naslijediti iz izvedene klase što je čini osnovnom klasom za novu klasu, na primjer, Dijete nasljeđuje ponašanje od oca, a otac je naslijedio osobine od oca.
- Hijerarhijsko nasljeđivanje: Jednu klasu nasljeđuje više podrazreda.
- Hibridno nasljeđivanje: Ovo je kombinacija jednog i više nasljeđa.
P # 10) Što je sučelje?
Odgovor: Sučelje je slično klasi u kojoj može imati metode i varijable, ali njegove metode nemaju tijelo, već samo potpis poznat kao apstraktna metoda. Varijable deklarirane u sučelju mogu prema zadanim postavkama imati javne, statičke i konačne. Sučelje se koristi u Javi za apstrakciju i višestruko nasljeđivanje, gdje klasa može implementirati više sučelja.
P # 11) Možete li objasniti prednosti apstrakcije i nasljeđivanja?
Odgovor: Apstrakcija korisniku otkriva samo bitne detalje i ignorira ili skriva nebitne ili složene detalje. Drugim riječima, apstrakcija podataka izlaže sučelje i skriva detalje implementacije. Java izvodi apstrakciju uz pomoć sučelja i apstraktnih klasa. Prednost apstrakcije je u tome što pojednostavljuje gledanje stvari smanjenjem ili skrivanjem složenosti implementacije.
Izbjegava se dupliciranje koda, što povećava ponovnu upotrebu koda. Korisniku se otkrivaju samo bitni detalji i poboljšava sigurnost aplikacije.
Nasljeđivanje je mjesto gdje podređena klasa nasljeđuje funkcionalnost (ponašanje) roditeljske klase. Ne trebamo pisati kod jednom napisan u roditeljskoj klasi radi ponovne funkcionalnosti u podređenoj klasi i na taj način olakšavamo ponovnu upotrebu koda. Kôd postaje i čitljiv. Nasljeđivanje se koristi tamo gdje postoji veza „postoji“. Primjer: Hyundai je automobil ILI MS Word je softver.
P # 12) Koja je razlika između proširenja i priključaka?
Odgovor: Ključna riječ extends i implements koristi se za nasljeđivanje, ali na različite načine.
Razlike između ključnih riječi Extends i Implements u Javi objašnjene su u nastavku:
Proširuje | Provodi |
---|---|
Razred može proširiti drugi razred (dijete koje produžuje roditelj nasljeđivanjem njegovih karakteristika). Sučelje također nasljeđuje (pomoću ključne riječi proširuje) drugo sučelje. | Klasa može implementirati sučelje |
Podrazred koji proširuje super klasu možda neće nadjačati sve metode super klase | Klasa koja implementira sučelje mora implementirati sve metode sučelja. |
Klasa može proširiti samo jednu super klasu. | Klasa može implementirati bilo koji broj sučelja. |
Sučelje može proširiti više sučelja. | Sučelje ne može implementirati bilo koje drugo sučelje. |
Sintaksa: razred Dijete produžuje razred Roditelj | Sintaksa: klasa Hibrid implementira Rose |
P # 13) Koji su različiti modifikatori pristupa u Javi?
Odgovor: Modifikatori pristupa u Javi kontroliraju opseg pristupa klase, konstruktora, varijable, metode ili člana podataka. Razne vrste modifikatora pristupa su kako slijedi:
- Zadani modifikator pristupa je bez članova podataka, klase i metoda podataka specifikatora pristupa i dostupni su u istom paketu.
- Modifikatori privatnog pristupa označeni su ključnom riječi private i dostupni su samo unutar klase, a ni klasa im ne može pristupiti iz istog paketa.
- Modifikatori zaštićenog pristupa mogu biti dostupni unutar istog paketa ili podrazreda iz različitih paketa.
- Modifikatori javnog pristupa dostupni su odasvuda.
P # 14) Objasnite razliku između apstraktne klase i metode?
Odgovor: Slijede neke razlike između apstraktne klase i apstraktne metode u Javi:
Sažetak klase | Apstraktna metoda |
---|---|
Objekt se ne može stvoriti iz apstraktne klase. | Apstraktna metoda ima potpis, ali nema tijelo. |
Potklasa je kreirala ili naslijedila apstraktnu klasu za pristup članovima apstraktne klase. | Obavezno je nadjačati apstraktne metode super klase u njihovoj podklasi. |
Sažetak klase može sadržavati apstraktne metode ili ne apstraktne metode. | Razred koji sadrži apstraktnu metodu treba učiniti apstraktnim. |
P # 15) Koje su razlike između metode i konstruktora?
Odgovor: Slijede razlike između konstruktora i metoda u Javi:
Konstruktori | Metode |
---|---|
Ime konstruktora mora se podudarati s imenom klase. | Metode ne bi trebale imati isto ime kao naziv klase. |
Koriste se za stvaranje, inicijalizaciju i alociranje memorije na objekt. | Metode se koriste za izvršavanje određenih iskaza zapisanih u njima. |
Sustav se implicitno poziva na konstruktore kad god se kreiraju objekti. | Metode se pozivaju kad se pozove. |
Pozvani su pomoću nove ključne riječi tijekom stvaranja instance klase (objekta). | Metode se pozivaju tijekom izvršavanja programa. |
Konstruktor nema tip povratka. | Metoda ima povratni tip. |
Konstruktor ne može naslijediti potklasa. | Metode mogu naslijediti potklase. |
P # 16) Što je konstruktor u Javi?
Odgovor: Konstruktor je metoda bez povratnog tipa i ima isto ime kao i naziv klase. Kada kreiramo objekt, zadani konstruktor dodjeljuje memoriju za objekt tijekom kompilacije Java koda. Konstruktori se koriste za inicijalizaciju objekata i postavljanje početnih vrijednosti za atribute objekata.
P # 17) Koliko se vrsta konstruktora može koristiti u Javi? Molim te objasni.
Odgovor: U osnovi postoje tri vrste konstruktora u Javi.
Ovi su:
- Zadani konstruktor: Ovaj konstruktor je bez ikakvog parametra i poziva se svaki put kada kreirate instancu klase (objekta). Ako je klasa Employee, tada će sintaksa zadanog konstruktora biti Employee ().
- Konstruktor bez argumenata: Kao što naziv implicira, konstruktor bez ikakvog argumenta naziva se no-arg konstruktor.
- Parametarski konstruktor: Konstruktor s brojnim parametrima naziva se parametrizirani konstruktor. Trebate navesti argumente, tj. Početne vrijednosti s obzirom na tip podataka parametara u tom konstruktoru.
P # 18) Zašto se nova ključna riječ koristi u Javi?
Odgovor: Kada kreiramo instancu klase, tj. Objekata, koristimo ključnu riječ Java novi . Dodjeljuje memoriju u području gomile gdje JVM rezervira prostor za objekt. Interno poziva i zadani konstruktor.
Sintaksa:
Class_name obj = new Class_name();
P # 19) Kada koristite super ključnu riječ?
Odgovor: Super je ključna riječ Java koja se koristi za identificiranje ili upućivanje nadređene (osnovne) klase.
- Super možemo koristiti za pristup konstruktoru super klase i metodama poziva super klase.
- Kada su nazivi metoda jednaki u super klasi i podklasi, za referencu super klase, super koristi se ključna riječ.
- Za pristup članovima podataka s istim imenom roditeljske klase kada su prisutni u roditeljskoj i podređenoj klasi.
- Super može se koristiti za upućivanje eksplicitnog poziva no-arg i parametriziranim konstruktorima roditeljske klase.
- Pristup metodi roditeljske klase može se izvršiti pomoću super , kada je klasa podređena nadjačala metodu.
P # 20) Kada koristite ovu ključnu riječ?
Odgovor: ovaj Ključna riječ u Javi odnosi se na trenutni objekt u konstruktoru ili u metodi.
- Kada atributi klase i parametarski konstruktori imaju isto ime, ovaj koristi se ključna riječ.
- Ključne riječi ovaj poziva trenutni konstruktor klase, metodu trenutne klase, vraća objekt trenutne klase, prosljeđuje argument u konstruktoru i poziv metode.
P # 21) Koja je razlika između polimorfizma vremena izvođenja i vremena kompajliranja?
Odgovor: Polimorfizam vremena izvođenja i vremena kompajliranja dvije su različite vrste polimorfizma. Njihove razlike su objašnjene u nastavku:
Sastaviti vremenski polimorfizam | Runtime polimorfizam |
---|---|
Poziv razrješava kompajler u polimorfizmu vremena kompajliranja. | Prevoditelj ne rješava poziv u runtime polimorfizmu. |
Također je poznato kao statičko vezivanje i preopterećenje metoda. | Također je poznato kao dinamičko, kasno i nadjačavanje metode. |
Metode istog imena s različitim parametrima ili metode s istim potpisom i različitim vrstama povratka polimorfizam su vremena kompajliranja. | Metoda istog imena s istim parametrima ili potpisom povezanim u različitim klasama naziva se nadjačavanje metode. |
Postiže se preopterećenjem funkcije i rukovatelja. | To se može postići pokazivačima i virtualnim funkcijama. |
Kao što se sve stvari izvršavaju u vrijeme kompajliranja. polimorfizam vremena prevođenja manje je fleksibilan. | Kako se stvari izvršavaju u vrijeme izvođenja, polimorfizam izvođenja je fleksibilniji. |
P # 22) Koje se objektno orijentirane značajke koriste u Javi?
Odgovor: Koncept korištenja objekta u programskom jeziku Java pogoduje upotrebom objektno orijentiranih koncepata poput enkapsulacije za međusobno povezivanje stanja i ponašanja objekta, osigurava pristup podacima specifikacijama pristupa, značajke poput apstrakcije u skrivanju informacija, nasljeđivanje za proširenje stanja i ponašanje osnovnih klasa prema podređenim razredima, polimorfizam vremena kompajliranja i vremena izvođenja za preopterećenje metode, odnosno prevladavanje metode.
P # 23) Što je preopterećenje metode?
Odgovor: Kada dvije ili više metoda s istim imenom imaju ili različit broj parametara ili različite vrste parametara, te metode mogu imati ili ne moraju imati različite tipove povrata, tada su to preopterećene metode, a značajka je preopterećenje metoda. Preopterećenje metode naziva se i polimorfizam vremena kompajliranja.
P # 24) Što je nadjačavanje metode?
Odgovor: Kada metoda podklase (izvedena, podređena klasa) ima isto ime, parametre (potpis) i isti tip povrata kao i metoda u svojoj super klasi (osnovna, nadređena klasa), tada se kaže da je metoda u potklasi nadjačana metoda u superrazredu. Ova je značajka poznata i kao polimorfizam vremena izvođenja.
P # 25) Objasnite preopterećenje konstruktora.
Odgovor: Više konstruktora koji imaju različite parametre, tako da se različiti zadaci mogu izvoditi sa svakim konstruktorom, poznato je kao preopterećenje konstruktora. Uz preopterećenje konstruktora, objekti se mogu kreirati na različite načine. Razne klase kolekcija u Java API-u primjeri su preopterećenja konstruktora.
pitanja i odgovori za intervjue za mobilno testiranje pdf
P # 26) Koje se vrste argumenata mogu koristiti u Javi?
Odgovor: Za Java metode i funkcije, podaci o parametrima mogu se slati i primati na različite načine. Ako je metodaB () pozvana iz metodeA (), metodaA () je funkcija pozivatelja, a metodaB () funkcija, argumenti poslani metodomA () stvarni su argumenti, a parametri metodeB () nazivaju se formalni argumenti.
- Nazovite po vrijednosti: Promjene napravljene u formalnom parametru (parametri metodeB ()) ne vraćaju se pozivatelju (methodA ()), ova metoda se naziva poziv po vrijednosti . Java podržava poziv prema vrijednosti.
- Nazovite putem reference: Promjene u formalnom parametru (parametri metodeB ()) vraćaju se pozivatelju (parametri metodeB ()).
- Sve promjene u formalnim parametrima (parametri metodeB ()) odražavaju se na stvarnim parametrima (argumenti koje šalje metodaA ()). To se poziva pozivom putem reference.
P # 27) Razlikovati statičko i dinamičko vezivanje?
Odgovor: Razlike između statičkog i dinamičkog vezanja objašnjene su u donjoj tablici.
Statično vezanje | Dinamičko povezivanje |
---|---|
Statično vezanje u Javi koristi vrstu polja i klasu kao rezoluciju. | Dinamičko vezanje u Javi koristi objekt za rješavanje vezanja. |
Preopterećenje metode primjer je statičkog vezanja. | Nadjačavanje metode je primjer dinamičkog vezanja. |
Statičko se vezivanje rješava u vrijeme sastavljanja. | Dinamičko se vezivanje rješava u vrijeme izvođenja. |
Metode i varijable koje koriste statičko vezivanje su privatni, konačni i statički tipovi. | Virtualne metode koriste dinamičko vezanje. |
P # 28) Možete li objasniti osnovnu klasu, podrazred i superrazred?
Odgovor: Osnovna klasa, podklasa i super klasa u Javi objašnjavaju se kako slijedi:
- Osnovna klasa ili roditeljska klasa je super klasa i klasa je iz koje je izvedena potklasa ili podređena klasa.
- Podrazred je klasa koja nasljeđuje atribute (svojstva) i metode (ponašanje) od osnovne klase.
P # 29) Je li u Javi podržano preopterećenje operatora?
Odgovor: Java ne podržava preopterećenje operatera jer,
- To čini tumača da ulaže više napora kako bi razumio stvarnu funkcionalnost operatora čineći kod složenim i teškim za sastavljanje.
- Preopterećenje operatora čini programe sklonijima pogreškama.
- Međutim, značajka preopterećenja operatera može se postići u preopterećenju metode na jednostavan, jasan način i bez grešaka.
P # 30) Kada se koristi metoda finaliziranja?
Odgovor: dovršiti metoda se poziva neposredno prije nego što će se objekt sakupljati. Ova se metoda poništava kako bi se smanjilo curenje memorije, poduzimaju aktivnosti čišćenja uklanjanjem sistemskih resursa.
P # 31) Objasnite tokene.
Odgovor: Žetoni u programu Java najmanji su elementi koje kompajler prepoznaje. Identifikatori, ključne riječi, literali, operatori i separatori primjeri su tokena.
Zaključak
Objektno orijentirani koncepti programiranja sastavni su dio za programere, automatizaciju kao i ručne testere koji dizajniraju okvir za automatizaciju kako bi testirali aplikaciju ili razvili programe s Java programskim jezikom.
Dubinsko razumijevanje obvezno je za sve objektno orijentirane značajke kao što su klasa, objekt, apstrakcija, inkapsulacija, nasljeđivanje, polimorfizam i primjena tih koncepata u programskom jeziku poput Jave za postizanje zahtjeva kupaca.
Pokušali smo obuhvatiti najvažnija objektno orijentirana pitanja u intervjuu za programe i dali smo primjere odgovora primjerima.
Želimo vam sve najbolje za vaš predstojeći intervju!
Preporučena literatura
- OOP Java: Uvod u objektno orijentirano programiranje u Javi
- Top 20 programa Java Interview za programiranje i kodiranje Intervjua
- Top 50+ temeljnih pitanja i odgovora za Java intervjue
- Java sučelje i udžbenik sažetka klase s primjerima
- Inkapsulacija u Javi: Kompletna lekcija s primjerima
- Što je apstrakcija u Javi - naučite na primjerima
- OOPS koncepti u C #: Vodič za koncept objektno orijentiranog programiranja
- Python OOPs koncepti (klase Python, objekti i nasljeđivanje)