სარჩევი[დამალვა][ჩვენება]
- 1. კონკრეტულად რა არის ობიექტზე ორიენტირებული პროგრამირება?
- 2. რატომ არის საჭირო OOP-ები?
- 3. რა სარგებელს გვთავაზობს OOPS პრინციპები?
- 4. რა არის OOPs კონცეფციის საყრდენები?
- 5. კონკრეტულად რა არის კლასი?
- 6. კონკრეტულად რა არის ობიექტი?
- 7. რა არის OOP-ების შეზღუდვები?
- 8. რა არის მემკვიდრეობა?
- 9. კონკრეტულად რა არის ინკაფსულაცია?
- 10. რა არის პოლიმორფიზმი?
- 11. რა არის ზუსტად აბსტრაქცია?
- 12. კონკრეტულად რა არის მეთოდის გადატვირთვა?
- 13. კონკრეტულად რა არის მეთოდის უპირატესობა?
- 14. კონკრეტულად რა არის სუპერკლასი?
- 15. კონკრეტულად რა არის ქვეკლასი?
- 16. კონკრეტულად რა არის სტატიკური პოლიმორფიზმი?
- 17. კონკრეტულად რა არის დინამიური პოლიმორფიზმი?
- 18. აღწერეთ კონსტრუქტორის ცნება.
- 19. კონკრეტულად რა არის წვდომის მოდიფიკატორები?
- 20. კონკრეტულად რა არის დესტრუქტორი?
- 21. კონკრეტულად რა არის ჰიბრიდული მემკვიდრეობა?
- 22. კონკრეტულად რა არის იერარქიული მემკვიდრეობა?
- 23. რა არის მემკვიდრეობის ნაკლოვანებები?
- 24. კონკრეტულად რა არის გამონაკლისი?
- 25. კონკრეტულად რა არის გამონაკლისის მართვა და რა სარგებლობა მოაქვს მას?
- 26. კონკრეტულად რა არის ვირტუალური ფუნქციები?
- 27. კონკრეტულად რა არის მეგობარი ფუნქცია?
- 28. კონკრეტულად რა არის ნაგვის შეგროვება?
- 29. კონკრეტულად რა არის შეერთება?
- 30. კონკრეტულად რა არის ერთიანობა?
- 31. აღწერეთ ცდა/დაჭერის ბლოკი.
- 32. აღწერეთ საბოლოო ბლოკი.
- 33. კონკრეტულად რა არის ინტერფეისი?
- 34. კონკრეტულად რა არის კომპოზიცია?
- 35. კონკრეტულად რა არის კონსტრუქტორის ჯაჭვობა?
- დასკვნა
პროგრამირების ერთ-ერთ ყველაზე გავლენიან პარადიგმას ეწოდება OOPs, ანუ ობიექტზე ორიენტირებული პროგრამირება. ფუნქციებისა და პროცესების ნაცვლად, ის ხაზს უსვამს კლასებსა და ობიექტებს.
მისი მთავარი მიზანია მონაცემთა და ნივთების დაკავშირება, რათა მათთან მუშაობა უფრო მარტივი იყოს. OOP-ებში თითოეული ობიექტი შედგება კოდისგან პროცედურების ან მეთოდების სახით და მონაცემები ველების სახით.
ისეთი ენები, როგორიცაა C++, Objective C, Python, Perl და Java, ზოგიერთი ყველაზე პოპულარული ობიექტზე ორიენტირებულია. პროგრამირების ენები.
ამის შესახებ მეტის გაგება მნიშვნელოვანია, რადგან ინტერვიუს კითხვები ძალიან ტიპიურია. ფირმების უმეტესობა ეძებს ინჟინრებს, რომლებიც იცნობენ ობიექტზე ორიენტირებულ მეთოდებსა და შაბლონებს. ასე რომ, თუ აპირებთ გასაუბრებაზე დასწრებას, კარგად უნდა გცოდნოთ OOP იდეები.
ამ პოსტში ნაჩვენები იქნება სხვადასხვა ობიექტზე ორიენტირებული პროგრამირების ინტერვიუს კითხვები დამწყებიდან ექსპერტამდე. ამრიგად, შეგიძლიათ გაიაროთ ნებისმიერი დონის ინტერვიუ და დაიცვათ თქვენი საოცნებო პოზიცია.
1. კონკრეტულად რა არის ობიექტზე ორიენტირებული პროგრამირება?
ობიექტზე ორიენტირებული პროგრამირება (OOP) ეფუძნება რეალურ ობიექტებს და არა მხოლოდ ფუნქციებსა და პროცესებს. კლასები იქმნება ინდივიდუალური პროდუქტებისთვის.
მემკვიდრეობა, პოლიმორფიზმი და დამალვა არის რეალური სამყაროს კონცეფციების მაგალითები, რომლებსაც OOP აერთიანებს პროგრამირებაში. ის ასევე შესაძლებელს ხდის მონაცემთა და კოდის დაკავშირებას.
2. რატომ არის საჭირო OOP-ები?
არსებობს რამდენიმე მიზეზი, რის გამოც OOP-ები სასურველია, თუმცა, ყველაზე მნიშვნელოვანი შემდეგია:
- OOPs, საშუალებას აძლევს ხალხს ადვილად გაიაზრონ პროგრამული უზრუნველყოფა, მაშინაც კი, თუ ისინი არ იცნობენ განხორციელებას.
- უი, გააუმჯობესეთ კოდის წაკითხვა, გაგება და შენარჩუნება ათჯერ.
- OOP-ების გამოყენებით, ძალიან დიდი აპლიკაციებიც კი შეიძლება უბრალოდ აშენებული და კონტროლირებადი.
3. რა სარგებელს გვთავაზობს OOPS პრინციპები?
- OOPS, პროგრამირების ობიექტები ახდენს რეალურ სამყაროს ობიექტების სიმულაციას, ამცირებს სირთულეს და ზრდის პროგრამის სიცხადეს.
- ობიექტები შეიძლება გამოყენებულ იქნას არაერთხელ მრავალ პროგრამაში.
- თითოეული ობიექტი ქმნის განსხვავებულ ერთეულს, რომლის შიდა ოპერაციები დამოუკიდებელია სისტემის სხვა კომპონენტებისგან.
- რამდენიმე ახალი ობიექტის დანერგვით და რამდენიმე უკვე არსებულის განახლებით, შესაძლებელია ახალი ფუნქციების დამატება ან ცვალებადი ოპერაციული პირობების ადაპტირება.
- OOPs პროგრამის პროცესები ან მონაცემთა წარმოდგენა ადვილად შეიძლება გაიაროს მცირე კორექტირება.
4. რა არის OOPs კონცეფციის საყრდენები?
შემდეგი არის OOP-ის ძირითადი საყრდენები:
მემკვიდრეობა: ის კლასებს საშუალებას აძლევს, მემკვიდრეობით მიიღონ სხვა კლასის ატრიბუტები.
Encapsulation: ეს განისაზღვრება, როგორც ობიექტის თვისება, რომელიც მალავს კრიტიკულ ინფორმაციას. ეს ინახავს მონაცემებს კლასის წევრებისგან. სპეციფიკატორები აღწერენ, თუ როგორ ხდება ობიექტის ატრიბუტის წვდომა კოდში.
პოლიმორფიზმი: ეს საშუალებას გაძლევთ განახორციელოთ ერთი აქტივობა რამდენიმე გზით. ის მიიღწევა ინტერფეისების საშუალებით, რომლებშიც ჩვენ ვაცხადებთ ერთ ინტერფეისს, რომელიც შემდგომ განხორციელდება რამდენჯერმე.
აბსტრაქცია: შეგიძლიათ გამოიყენოთ ეს ფუნქცია გარე სამყაროსგან კრიტიკული ინფორმაციის დასამალად და მხოლოდ არსებითი ფაქტების წარმოსაჩენად.
5. კონკრეტულად რა არის კლასი?
კლასი არის პროტოტიპი, რომელიც შედგება ობიექტებისგან სხვადასხვა მდგომარეობაში და განსხვავებული ქცევით. მას აქვს რამდენიმე მეთოდი, რომლებიც იზიარებენ ამ კლასის ობიექტებს.
6. კონკრეტულად რა არის ობიექტი?
ობიექტი არის რეალური სამყაროს ერთეული, რომელიც ემსახურება OOP-ების ფუნდამენტურ ერთეულს, როგორიცაა სკამი, კატა ან ძაღლი. სხვადასხვა ობიექტებს აქვთ სხვადასხვა მდგომარეობა, თვისებები და მოქმედებები.
7. რა არის OOP-ების შეზღუდვები?
- ზომა უფრო დიდია, ვიდრე სხვა აპლიკაციების.
- ამას გარკვეული შეგუება სჭირდება.
- გარკვეული სახის პრობლემები ამას არ მოითხოვს.
- მისი შექმნა შრომატევადი იყო და სხვა აპლიკაციებთან შედარებით, უფრო ნელა მუშაობს.
8. რა არის მემკვიდრეობა?
ცნება, რომელსაც ეწოდება მემკვიდრეობა, ეხება კლასის ჩამოყალიბებული სტრუქტურისა და ქცევის გაზიარებას სხვა კლასის მიერ. როდესაც მემკვიდრეობა გამოიყენება ერთ კლასზე, მას მოიხსენიებენ, როგორც ერთეულ მემკვიდრეობას; როდესაც ეს დამოკიდებულია ბევრ კლასზე, მას უწოდებენ მრავალ მემკვიდრეობას.
9. კონკრეტულად რა არის ინკაფსულაცია?
OOPs-ის იდეა მოიცავს ინკაპსულაციასაც. იგი აღწერს მონაცემთა შერწყმას და მონაცემთა მანიპულირების ტექნიკას. გარდა ამისა, ის ხელს უწყობს ობიექტის ზოგიერთ ნაწილზე პირდაპირი წვდომის თავიდან აცილებას.
10. რა არის პოლიმორფიზმი?
OOP ენებში პოლიმორფიზმი ფუნდამენტური ცნებაა. ის გვიჩვენებს, თუ როგორ შეიძლება სხვადასხვა კლასებმა გაიზიარონ ინტერფეისი. ყველა ამ კლასს შეუძლია ჰქონდეს უნიკალური ინტერფეისის დანერგვა.
11. რა არის ზუსტად აბსტრაქცია?
აბსტრაქცია არის ობიექტზე ორიენტირებული პროგრამირების (OOPs) კონცეფცია, რომელიც გამოიყენება რეალურ სამყაროში არსებული ობიექტების სტრუქტურის შესაქმნელად. ის „აჩვენებს“ მხოლოდ ყველაზე მნიშვნელოვან თვისებებს და „ფარავს“ უცხო ინფორმაციას გარე სამყაროდან. აბსტრაქციის ძირითადი მიზანია ხალხის დაცვა ზედმეტი ინფორმაციისგან.
12. კონკრეტულად რა არის მეთოდის გადატვირთვა?
შესაძლებელია ორ ან მეტ პროცედურას ერთი და იგივე სახელი ჰქონდეს. თუმცა, მათ უნდა ჰქონდეთ განსხვავებული პარამეტრები, განსხვავებული რაოდენობის პარამეტრები, განსხვავებული ტიპები ან ორივე. ეს ცნობილია, როგორც გადატვირთული მეთოდები, ხოლო ფუნქცია ცნობილია, როგორც მეთოდის გადატვირთვა.
13. კონკრეტულად რა არის მეთოდის უპირატესობა?
ობიექტზე ორიენტირებული პროგრამირება მოიცავს მეთოდის გადაფარვის იდეას. ეს არის ენის ფუნქცია, რომელიც საშუალებას აძლევს ქვეკლასს ან შვილობილ კლასს შესთავაზოს მეთოდის მორგებული იმპლემენტაცია, რომელსაც მისი ერთ-ერთი სუპერკლასი ან მშობელი კლასი უკვე უზრუნველყოფს.
14. კონკრეტულად რა არის სუპერკლასი?
სუპერკლასი, რომელიც ხშირად ცნობილია როგორც საბაზისო კლასი, არის კლასის ტიპი, რომელიც მოქმედებს როგორც სხვა კლასის ან კლასების მშობელი. მანქანის კლასს, მაგალითად, აქვს ქვეკლასი სახელწოდებით Vehicle.
15. კონკრეტულად რა არის ქვეკლასი?
ქვეკლასი არის სხვა კლასის ქვეკლასი. ფურგონი, მაგალითად, არის ავტომობილის ქვეკლასი ან მიღებული კლასი.
16. კონკრეტულად რა არის სტატიკური პოლიმორფიზმი?
შედგენის დროს ხდება პოლიმორფიზმის ტიპი, რომელიც ცნობილია როგორც სტატიკური პოლიმორფიზმი (სტატიკური შეკვრა). მეთოდის გადატვირთვა არის კომპილ-დროის პოლიმორფიზმის ტიპი.
17. კონკრეტულად რა არის დინამიური პოლიმორფიზმი?
ერთგვარი პოლიმორფიზმი, რომელიც წყდება მუშაობის დროს, ეწოდება გაშვების პოლიმორფიზმი, რომელიც ასევე ცნობილია როგორც დინამიური პოლიმორფიზმი (დინამიური შებოჭვა). მეთოდების უზენაესობა არის გაშვების დროის პოლიმორფიზმის ილუსტრაცია.
18. აღწერეთ კონსტრუქტორის ცნება.
კონსტრუქტორი არის კლასის სპეციფიკური მეთოდი, რომელიც ავტომატურად გამოიძახება კლასის ინსტანციის შექმნისას. როდესაც თქვენ წვდებით კლასს, ის აგებულია იმავე სახელით, როგორც კლასი და ახდენს მისი ყველა წევრის ინიციალიზებას. კონსტრუქტორის ძირითადი მახასიათებლები შემდეგია:
არ არსებობს დაბრუნების ტიპი კონსტრუქტორებისთვის.
შესაძლებელია კონსტრუქტორების გადატვირთვა.
არ არის საჭირო კონსტრუქტორის მითითება; NET Framework ამას ავტომატურად გააკეთებს.
19. კონკრეტულად რა არის წვდომის მოდიფიკატორები?
ობიექტზე ორიენტირებულ ენებში საკვანძო სიტყვები არის წვდომის მოდიფიკატორები ან წვდომის სპეციფიკატორები. ის ხელს უწყობს კლასების, მეთოდების და სხვა წევრების ხელმისაწვდომობის კონფიგურაციას.
20. კონკრეტულად რა არის დესტრუქტორი?
დესტრუქტორი არის მეთოდი ობიექტზე მინიჭებული რესურსების გასათავისუფლებლად. როდესაც ობიექტი განადგურებულია, ეს მეთოდი ავტომატურად გამოიძახება.
21. კონკრეტულად რა არის ჰიბრიდული მემკვიდრეობა?
ჰიბრიდული მემკვიდრეობა არის ერთგვარი მემკვიდრეობა, რომელიც წარმოიქმნება მემკვიდრეობის რამდენიმე ფორმის შერევით, როგორიცაა ერთჯერადი, მრავალჯერადი და ა.შ.
22. კონკრეტულად რა არის იერარქიული მემკვიდრეობა?
მრავალი ქვეკლასი მემკვიდრეობით იღებს მშობელი კლასიდან იერარქიული მემკვიდრეობის სიტუაციაში. ერთგვარი მემკვიდრეობა, რომელშიც მრავალი კლასი წარმოიქმნება ერთი მშობლის ან საბაზისო კლასიდან, ცნობილია როგორც იერარქიული მემკვიდრეობა. მაგალითად, ხილის კლასი შეიძლება შეიცავდეს ქვეკლასებს, როგორიცაა "ვაშლი", "მანგო", "ბანანი", "ალუბალი" და ა.შ.
23. რა არის მემკვიდრეობის ნაკლოვანებები?
ეს ახანგრძლივებს და ართულებს შესრულების პროცესს. ის ასევე მოითხოვს სხვადასხვა კლასებს შორის გადართვას. მშობლისა და ბავშვის კლასები ყოველთვის განუყოფლად არის დაკავშირებული.
სასწავლო გეგმის ცვლილებები საჭიროებს გადახედვას როგორც მშობლის, ასევე ბავშვის კლასისთვის. მემკვიდრეობა უნდა განხორციელდეს ფრთხილად, წინააღმდეგ შემთხვევაში შედეგები არასწორი იქნება.
24. კონკრეტულად რა არის გამონაკლისი?
გამონაკლისი არის ინციდენტი, რომელიც ხელს უშლის კოდის ჩვეულებრივ მუშაობას. შესრულების გასაგრძელებლად, თქვენ შეგიძლიათ გაუმკლავდეთ ამ გამონაკლისებს Java-ში. ჯავაში არის მრავალი სახის წინასწარ განსაზღვრული გამონაკლისი და გამონაკლისების დამუშავება გათვალისწინებულია ამაღლებული გამონაკლისების გასაკონტროლებლად try-catch ბლოკების გამოყენებით.
25. კონკრეტულად რა არის გამონაკლისის მართვა და რა სარგებლობა მოაქვს მას?
Java-ში ყველაზე მნიშვნელოვანი მეთოდი გაშვების დროს მოულოდნელი წარუმატებლობების მოსაგვარებლად არის გამონაკლისების მართვა. ის საშუალებას გაძლევთ აკონტროლოთ გაშვების დროის შეცდომები, რომლებიც წარმოიქმნება პროგრამის შესრულების დროს.
გამონაკლისების დამუშავების უპირატესობები მოიცავს პროგრამის რეგულარული ნაკადის შენარჩუნების შესაძლებლობას გამონაკლისების მართვისას. მაგალითად, თუ შეცდომა მოხდა პროგრამის ერთ სექციაში, ის არ იმოქმედებს პროგრამის დანარჩენზე, თუ გამონაკლისს ვატარებთ try-catch ბლოკებით.
26. კონკრეტულად რა არის ვირტუალური ფუნქციები?
ვირტუალური ფუნქციები ასევე შედის მშობელი კლასის ფუნქციებში და უგულებელყოფილია ქვეკლასით. ეს რუტინები ხელს უწყობს გაშვების პოლიმორფიზმის მიღწევას.
27. კონკრეტულად რა არის მეგობარი ფუნქცია?
მეგობარი ფუნქცია არის ფუნქცია, რომელიც ეკუთვნის კლასს და აქვს წვდომა მის საჯარო, პირად ან დაცულ მონაცემებზე. თუ ფუნქცია განსაზღვრულია კლასის გარეთ, ამ მონაცემების მოძიება შეუძლებელია. წვდომის კონტროლის საკვანძო სიტყვებს კერძო, საჯარო და დაცული არ აქვს არანაირი გავლენა მეგობრის დეკლარაციაზე, რომელიც შეიძლება გაკეთდეს კლასის დეკლარაციაში სადმე.
28. კონკრეტულად რა არის ნაგვის შეგროვება?
ნაგვის შეგროვება (GC) არის პროგრამირების ენების ელემენტი, როგორიცაა C# და Java, რომელიც მეხსიერების აღდგენის სისტემას ემსახურება. ნაგვის შეგროვების (GC) ძრავა არის პროგრამირების ენის კომპონენტი, რომელიც საშუალებას აძლევს მეხსიერების სივრცის ავტომატიზირებას იმ ობიექტებისთვის, რომლებსაც აპლიკაცია აღარ იყენებს.
29. კონკრეტულად რა არის შეერთება?
ეს ეხება სიტუაციებს, როდესაც სხვადასხვა კლასი ეყრდნობა ერთმანეთს და იზიარებს ცოდნას. ძლიერი კავშირი ხდება მაშინ, როდესაც ერთ კლასს აქვს დეტალური ცოდნა მეორე კლასის შესახებ. თქვენ შეგიძლიათ მიუთითოთ კლასების, მეთოდების ან ცვლადების ხილვადობა წვდომის მოდიფიკატორების გამოყენებით. ინტერფეისები გამოიყენება სუსტი შეერთების უზრუნველსაყოფად.
30. კონკრეტულად რა არის ერთიანობა?
ის, თუ როგორ ასრულებს კომპონენტი გარკვეულ აქტივობას, მოიხსენიება, როგორც მისი ერთიანობა. ძლიერი, თანმიმდევრული მიდგომა უბრალოდ შეასრულებს განსაზღვრულ ამოცანას, ხოლო სუსტი, თანმიმდევრული მეთოდი დაყოფს ერთ დავალებას რამდენიმე პატარა დავალებად და შემდეგ დაასრულებს მათ.
Java.io პაკეტი საკმაოდ თანმიმდევრულია, მაგრამ java.util პაკეტი არა.
31. აღწერეთ ცდა/დაჭერის ბლოკი.
როდესაც პროგრამა ხვდება შეცდომას არასწორი კოდის ან მონაცემების გამო, „სცადე“ და „დაჭერა“ მიუთითეთ როგორ მართოთ იგი. try ბლოკი არის კოდის იმ ნაწილის სახელი, როდესაც ხდება გამონაკლისი. დაჭერის ბლოკი გამოიყენება საცდელ ბლოკებიდან გამონაკლისების დასაფიქსირებლად და გასამკლავებლად.
32. აღწერეთ საბოლოო ბლოკი.
try საკვანძო სიტყვის კოდის სამუშაო ნაწილი მითითებულია ბოლოს. ის მიუთითებს კოდს, რომელიც ყოველთვის აწარმოებს საცდელი პერიოდის შემდეგ და ნებისმიერი დაჭერის ბლოკი მეთოდის დასრულებამდე. საბოლოო ბლოკი ყოველთვის გაშვებულია, მიუხედავად იმისა, გამონაკლისი იქნება დაჭერილი თუ დაჭერილი.
33. კონკრეტულად რა არის ინტერფეისი?
ინტერფეისი არის აბსტრაქტული მეთოდებისა და მომხმარებლის მიერ განსაზღვრული მონაცემთა ტიპის კომბინაცია. კლასი ახორციელებს ინტერფეისს, რომელიც მემკვიდრეობით იღებს ინტერფეისის აბსტრაქტულ ფუნქციებს.
კლასი წარმოადგენს ობიექტის თვისებებს და ქცევებს, ხოლო ინტერფეისი მოიცავს ქცევებს, რომლებსაც კლასი ახორციელებს. ინტერფეისი წარმოადგენს „რას“, ხოლო კლასი გადმოსცემს „როგორს“.
34. კონკრეტულად რა არის კომპოზიცია?
კომპოზიცია შეიძლება გამოყენებულ იქნას კავშირის მისაღწევად. ის აჩვენებს ძლიერ ობიექტურ კავშირს დამოკიდებულ და დამოუკიდებელ ობიექტებს შორის, აგრეგაციისგან განსხვავებით. დამოკიდებული ობიექტი ამ ვითარებაში არ არსებობს და წაიშლება, თუ მშობელი ობიექტი წაიშლება.
35. კონკრეტულად რა არის კონსტრუქტორის ჯაჭვობა?
კონსტრუქტორის ჯაჭვობა არის ტექნიკა, რომელიც გამოიძახებს ერთი კონსტრუქტორის მეორისგან მიმდინარე ობიექტის მითითებასთან მიმართებაში. არსებობს ორი ვარიანტი:
- მიმდინარე კლასში კონსტრუქტორი შეიძლება იყოს მითითებული "ამ" საკვანძო სიტყვის გამოყენებით.
- "სუპერ" საკვანძო სიტყვა გამოყენებული იქნება საბაზისო კლასიდან კონსტრუქტორის გამოსაძახებლად.
დასკვნა
ობიექტზე ორიენტირებული პროგრამირება მოითხოვს პროგრამის სტრუქტურაზე ფიქრს და წინასწარ მომზადებას. შეისწავლის, თუ როგორ უნდა დაიყოს მოთხოვნები ძირითად, მრავალჯერად გამოყენებად კლასებად, რომლებიც შეიძლება გამოყენებულ იქნას ნივთების მაგალითების შესაქმნელად.
საერთო ჯამში, OOP-ის მიღება უზრუნველყოფს გაუმჯობესებას მონაცემთა სტრუქტურები და ხელახლა გამოყენებადობა, რაც დაზოგავს დროს გრძელვადიან პერსპექტივაში. იხ ჰაშდორკის ინტერვიუს სერია ინტერვიუს მომზადებაში დახმარებისთვის.
დატოვე პასუხი