สารบัญ[ซ่อน][แสดง]
- 1. Object Oriented Programming คืออะไร?
- 2. เหตุใด OOP จึงจำเป็น
- 3. หลักการ OOPS มีประโยชน์อะไรบ้าง?
- 4. เสาหลักของแนวคิด OOP คืออะไร?
- 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. Garbage Collection คืออะไร?
- 29. การมีเพศสัมพันธ์ที่แม่นยำคืออะไร?
- 30. ความสามัคคีคืออะไรกันแน่?
- 31. อธิบายบล็อกการลอง/จับ
- 32. อธิบายบล็อกสุดท้าย
- 33. อินเทอร์เฟซคืออะไรกันแน่?
- 34. องค์ประกอบคืออะไรกันแน่?
- 35. การผูกมัดคอนสตรัคเตอร์คืออะไรกันแน่?
- สรุป
กระบวนทัศน์การเขียนโปรแกรมที่มีอิทธิพลมากที่สุดอย่างหนึ่งเรียกว่า OOPs หรือการเขียนโปรแกรมเชิงวัตถุ แทนที่จะเป็นหน้าที่และกระบวนการ มันเน้นที่คลาสและอ็อบเจ็กต์
วัตถุประสงค์หลักคือการเชื่อมต่อข้อมูลและสิ่งต่าง ๆ เพื่อให้ทำงานกับพวกเขาได้ง่ายขึ้น แต่ละอ็อบเจ็กต์ใน OOPs ประกอบด้วยโค้ดในรูปแบบของโพรซีเดอร์หรือเมธอดและข้อมูลในรูปแบบของฟิลด์
ภาษาเช่น C++, Objective C, Python, Perl และ Java เป็นภาษาเชิงวัตถุที่ได้รับความนิยมมากที่สุด การเขียนโปรแกรมภาษา.
สิ่งสำคัญคือต้องเข้าใจเรื่องนี้ให้มากขึ้น เนื่องจากคำถามสัมภาษณ์อ๊ะเป็นเรื่องปกติมาก บริษัทส่วนใหญ่กำลังมองหาวิศวกรที่คุ้นเคยกับวิธีการและรูปแบบเชิงวัตถุ ดังนั้น หากคุณตั้งใจจะเข้าร่วมการสัมภาษณ์ คุณต้องมีความรอบรู้ในแนวคิด OOP
คำถามสัมภาษณ์การเขียนโปรแกรมเชิงวัตถุต่างๆ ตั้งแต่ระดับเริ่มต้นจนถึงระดับผู้เชี่ยวชาญจะแสดงในโพสต์นี้ คุณจึงสามารถผ่านการสัมภาษณ์ทุกระดับและรักษาตำแหน่งในฝันของคุณได้
1. Object Oriented Programming คืออะไร?
การเขียนโปรแกรมเชิงวัตถุ (OOPs) อิงตามวัตถุจริงมากกว่าแค่ฟังก์ชันและกระบวนการ ชั้นเรียนถูกสร้างขึ้นสำหรับผลิตภัณฑ์แต่ละรายการ
การสืบทอด ความหลากหลาย และการปกปิดเป็นตัวอย่างของแนวคิดในโลกแห่งความเป็นจริงที่ OOP รวมเข้ากับการเขียนโปรแกรม นอกจากนี้ยังทำให้สามารถเชื่อมต่อข้อมูลและรหัสได้
2. เหตุใด OOP จึงจำเป็น
มีสาเหตุหลายประการที่ทำให้ OOP เป็นที่นิยม อย่างไรก็ตาม สิ่งต่อไปนี้สำคัญที่สุด:
- OOPs ช่วยให้ผู้คนสามารถเข้าใจซอฟต์แวร์ได้อย่างง่ายดาย แม้ว่าพวกเขาจะไม่คุ้นเคยกับการใช้งานก็ตาม
- อ๊ะ ปรับปรุงความสามารถในการอ่านโค้ด ความเข้าใจ และการบำรุงรักษาขึ้นสิบเท่า
- ด้วยการใช้ OOP แม้แต่แอปพลิเคชันขนาดใหญ่มากก็สามารถสร้างและควบคุมได้
3. หลักการ OOPS มีประโยชน์อะไรบ้าง?
- OOPS ซึ่งเป็นอ็อบเจ็กต์การเขียนโปรแกรมจำลองอ็อบเจ็กต์ในโลกจริง ลดความซับซ้อนและเพิ่มความชัดเจนของโปรแกรม
- ออบเจ็กต์สามารถใช้ซ้ำได้ในหลายโปรแกรม
- แต่ละอ็อบเจ็กต์จะสร้างเอนทิตีที่แตกต่างกันซึ่งมีการดำเนินการภายในที่ไม่ขึ้นกับส่วนประกอบอื่นๆ ของระบบ
- ด้วยการแนะนำออบเจ็กต์ใหม่สองสามรายการและอัปเดตออบเจ็กต์ที่มีอยู่แล้วสองสามรายการ คุณสามารถเพิ่มฟังก์ชันการทำงานใหม่หรือปรับให้เข้ากับสภาพการทำงานที่เปลี่ยนแปลงไป
- กระบวนการหรือการแสดงข้อมูลของโปรแกรม OOP สามารถปรับเปลี่ยนเล็กน้อยได้อย่างง่ายดาย
4. เสาหลักของแนวคิด OOP คืออะไร?
ต่อไปนี้เป็นเสาหลักของ OOP:
มรดก: ช่วยให้คลาสสามารถสืบทอดแอตทริบิวต์ของคลาสอื่นได้
encapsulation: สิ่งนี้ถูกกำหนดให้เป็นคุณสมบัติของอ็อบเจ็กต์ที่ปกปิดข้อมูลที่สำคัญ สิ่งนี้ทำให้ข้อมูลถูกปกปิดจากสมาชิกในชั้นเรียน ตัวระบุอธิบายวิธีการเข้าถึงแอตทริบิวต์ของวัตถุในรหัส
ความหลากหลาย: สิ่งนี้ทำให้คุณสามารถทำกิจกรรมเดียวได้หลายวิธี ทำได้ผ่านอินเทอร์เฟซ ซึ่งเราประกาศอินเทอร์เฟซเดียวที่นำมาใช้หลายครั้งในภายหลัง
สิ่งที่เป็นนามธรรม: คุณสามารถใช้ฟังก์ชันนี้เพื่อซ่อนข้อมูลสำคัญจากโลกภายนอกและนำเสนอเฉพาะข้อเท็จจริงที่สำคัญ
5. คลาสคืออะไรกันแน่?
คลาสคือต้นแบบที่ประกอบด้วยวัตถุในสถานะต่างๆ และมีพฤติกรรมที่แตกต่างกัน มีหลายวิธีที่ใช้ร่วมกันโดยวัตถุในชั้นเรียนนั้น
6. วัตถุคืออะไรกันแน่?
ออบเจ็กต์เป็นเอนทิตีในโลกแห่งความเป็นจริงที่ทำหน้าที่เป็นหน่วยพื้นฐานของ OOP เช่น เก้าอี้ แมว หรือสุนัข วัตถุต่าง ๆ มีสถานะ คุณสมบัติ และการกระทำที่หลากหลาย
7. ข้อจำกัดของ OOP คืออะไร?
- ขนาดใหญ่กว่าแอพพลิเคชั่นอื่นๆ
- มันต้องมีการทำความคุ้นเคย
- ปัญหาบางอย่างไม่เรียกร้อง
- การสร้างต้องใช้แรงงานมาก และเมื่อเปรียบเทียบกับแอปพลิเคชันอื่น มันทำงานช้ากว่า
8. มรดกคืออะไร?
แนวคิดที่เรียกว่าการสืบทอดหมายถึงการแบ่งปันโครงสร้างและพฤติกรรมที่จัดตั้งขึ้นของชั้นเรียนโดยชั้นเรียนอื่น เมื่อมีการใช้การสืบทอดกับคลาสเดียว จะเรียกว่าการสืบทอดเดี่ยว เมื่อมันขึ้นอยู่กับหลายคลาส มันถูกเรียกว่ามรดกหลาย
9. การห่อหุ้มอย่างแม่นยำคืออะไร?
แนวคิดของ OOP รวมถึงการห่อหุ้มด้วย อธิบายการผสมผสานของข้อมูลและเทคนิคการจัดการข้อมูล นอกจากนี้ยังช่วยป้องกันการเข้าถึงบางส่วนของวัตถุโดยตรง
10. ความแตกต่างคืออะไร?
ในภาษา OOP ความหลากหลายเป็นแนวคิดพื้นฐาน มันแสดงให้เห็นว่าคลาสต่าง ๆ อาจใช้อินเทอร์เฟซร่วมกันได้อย่างไร คลาสเหล่านี้ล้วนมีความสามารถในการใช้งานอินเทอร์เฟซเฉพาะ
11. สิ่งที่เป็นนามธรรมคืออะไรกันแน่?
Abstraction เป็นแนวคิดการเขียนโปรแกรมเชิงวัตถุ (OOP) ที่ใช้เพื่อสร้างโครงสร้างของวัตถุในโลกแห่งความเป็นจริง มัน "แสดง" เพียงคุณสมบัติที่สำคัญที่สุดและ "ปกปิด" ข้อมูลภายนอกจากโลกภายนอก เป้าหมายพื้นฐานของสิ่งที่เป็นนามธรรมคือการปกป้องผู้คนจากข้อมูลที่ไม่จำเป็น
12. วิธีการโอเวอร์โหลดคืออะไร?
เป็นไปได้ที่โพรซีเดอร์ตั้งแต่สองโพรซีเดอร์ขึ้นไปมีชื่อเดียวกัน อย่างไรก็ตาม พารามิเตอร์เหล่านี้ควรมีพารามิเตอร์ที่แตกต่างกัน จำนวนพารามิเตอร์ที่แตกต่างกัน ชนิดที่แตกต่างกัน หรือทั้งสองอย่าง สิ่งเหล่านี้เรียกว่าวิธีการโอเวอร์โหลด และคุณสมบัตินี้เรียกว่าวิธีการโอเวอร์โหลด
13. วิธีการเอาชนะคืออะไร?
การเขียนโปรแกรมเชิงวัตถุรวมถึงแนวคิดของการแทนที่เมธอด เป็นคุณลักษณะภาษาที่ช่วยให้คลาสย่อยหรือคลาสย่อยเสนอการใช้งานแบบกำหนดเองของวิธีการที่หนึ่งในซูเปอร์คลาสหรือคลาสพาเรนต์มีอยู่แล้ว
14. ซูเปอร์คลาสอย่างแม่นยำคืออะไร?
ซูเปอร์คลาส มักเรียกว่าคลาสฐาน เป็นประเภทของคลาสที่ทำหน้าที่เป็นพาเรนต์ของคลาสหรือคลาสอื่น ตัวอย่างเช่น คลาสรถยนต์มีคลาสย่อยที่เรียกว่า Vehicle
15. คลาสย่อยที่แม่นยำคืออะไร?
คลาสย่อยเป็นคลาสย่อยของคลาสอื่น รถตู้ ตัวอย่างเช่น เป็นคลาสย่อยของยานพาหนะหรือคลาสที่ได้รับ
16. ความแตกต่างแบบคงที่คืออะไรกันแน่?
ในเวลารวบรวม จะเกิดความหลากหลายของรูปแบบที่เรียกว่า static polymorphism (การผูกแบบสถิต) วิธีการโอเวอร์โหลดเป็นประเภทของความหลากหลายในการคอมไพล์เวลา
17. ความแตกต่างแบบไดนามิกคืออะไร?
ความแตกต่างประเภทหนึ่งที่ได้รับการแก้ไขในรันไทม์เรียกว่าพหุสัณฐานของรันไทม์ หรือที่เรียกว่าพหุสัณฐานแบบไดนามิก (การรวมแบบไดนามิก) การแทนที่เมธอดเป็นภาพประกอบของความแตกต่างระหว่างรันไทม์
18. อธิบายแนวคิดของผู้สร้าง
ตัวสร้างเป็นวิธีการเฉพาะของคลาสที่ถูกเรียกโดยอัตโนมัติเมื่อสร้างอินสแตนซ์ของคลาส เมื่อคุณเข้าถึงคลาส คลาสจะถูกสร้างขึ้นด้วยชื่อเดียวกับคลาสและเริ่มต้นสมาชิกทั้งหมด คุณสมบัติหลักของคอนสตรัคเตอร์มีดังนี้:
ไม่มีประเภทผลตอบแทนสำหรับตัวสร้าง
ตัวสร้างที่โอเวอร์โหลดเป็นไปได้
ไม่จำเป็นต้องระบุตัวสร้าง the.NET Framework จะทำโดยอัตโนมัติ
19. ตัวแก้ไขการเข้าถึงคืออะไรกันแน่?
ในภาษาเชิงวัตถุ คำหลักคือตัวแก้ไขการเข้าถึงหรือตัวระบุการเข้าถึง ช่วยในการกำหนดคอนฟิกของคลาส เมธอด และการเข้าถึงของสมาชิกคนอื่นๆ
20. ตัวทำลายล้างคืออะไรกันแน่?
Destructor คือวิธีการปล่อยทรัพยากรที่กำหนดให้กับวัตถุ เมื่อวัตถุถูกทำลาย วิธีการนี้จะถูกเรียกโดยอัตโนมัติ
21. มรดกลูกผสมคืออะไรกันแน่?
การสืบทอดแบบลูกผสมเป็นการสืบทอดประเภทหนึ่งที่เกิดจากการผสมผสานของการสืบทอดหลายรูปแบบ เช่น เดี่ยว หลายรายการ และอื่นๆ
22. การสืบทอดตามลำดับชั้นอย่างแม่นยำคืออะไร?
คลาสย่อยหลายคลาสสืบทอดจากคลาสพาเรนต์ในสถานการณ์ของการสืบทอดตามลำดับชั้น การสืบทอดชนิดหนึ่งซึ่งคลาสจำนวนมากสืบเชื้อสายมาจากพาเรนต์เดียวหรือคลาสฐานเรียกว่าการสืบทอดตามลำดับชั้น ตัวอย่างเช่น คลาส fruit สามารถมีคลาสย่อย เช่น 'apple, "mango,' 'banana,' 'cherry,' เป็นต้น
23. ข้อเสียของมรดกคืออะไร?
มันยาวขึ้นและทำให้กระบวนการดำเนินการซับซ้อนขึ้น นอกจากนี้ยังจำเป็นต้องสลับไปมาระหว่างชั้นเรียนต่างๆ คลาสพาเรนต์และคลาสย่อยเชื่อมโยงกันอย่างแยกไม่ออกเสมอ
การปรับเปลี่ยนหลักสูตรจะต้องมีการแก้ไขทั้งสำหรับผู้ปกครองและชั้นเรียนของเด็ก การสืบทอดจะต้องดำเนินการอย่างระมัดระวัง มิฉะนั้น ผลลัพธ์จะผิดพลาด
24. อะไรคือข้อยกเว้นกันแน่?
ข้อยกเว้นคือเหตุการณ์ที่รบกวนการทำงานปกติของรหัส หากต้องการดำเนินการต่อไป คุณสามารถจัดการข้อยกเว้นเหล่านี้ใน Java ใน Java มีข้อยกเว้นที่กำหนดไว้ล่วงหน้าหลายประเภท และมีการจัดการข้อยกเว้นเพื่อควบคุมข้อยกเว้นที่เพิ่มขึ้นโดยใช้บล็อก try-catch
25. การจัดการข้อยกเว้นคืออะไร และมีประโยชน์อย่างไร?
วิธีที่สำคัญที่สุดใน Java สำหรับจัดการกับความล้มเหลวรันไทม์ที่ไม่คาดคิดคือการจัดการข้อยกเว้น ช่วยให้คุณควบคุมข้อผิดพลาดรันไทม์ที่เกิดขึ้นระหว่างการทำงานของโปรแกรมได้
ประโยชน์ของการจัดการข้อยกเว้นรวมถึงความสามารถในการรักษาโฟลว์โปรแกรมปกติในขณะที่จัดการข้อยกเว้น ตัวอย่างเช่น หากข้อผิดพลาดเกิดขึ้นในส่วนหนึ่งของโปรแกรม จะไม่มีผลกับส่วนที่เหลือของโปรแกรมหากเราจัดการกับข้อยกเว้นด้วยบล็อก try-catch
26. ฟังก์ชันเสมือนคืออะไรกันแน่?
ฟังก์ชันเสมือนยังรวมอยู่ในฟังก์ชันของคลาสพาเรนต์และถูกแทนที่โดยคลาสย่อย กิจวัตรเหล่านี้ช่วยในการบรรลุผลสำเร็จของความแตกต่างระหว่างรันไทม์
27. หน้าที่ของเพื่อนคืออะไรกันแน่?
ฟังก์ชันเพื่อนคือฟังก์ชันที่เป็นของคลาสและได้รับอนุญาตให้เข้าถึงข้อมูลสาธารณะ ส่วนตัว หรือข้อมูลที่ได้รับการคุ้มครอง ถ้าฟังก์ชันถูกกำหนดไว้นอกคลาส จะไม่สามารถดึงข้อมูลนี้ได้ คีย์เวิร์ดควบคุมการเข้าถึงแบบส่วนตัว แบบสาธารณะ และแบบมีการป้องกันไม่มีผลต่อการประกาศของเพื่อน ซึ่งสามารถทำได้ทุกที่ในการประกาศคลาส
28. Garbage Collection คืออะไร?
Garbage Collection (GC) เป็นองค์ประกอบของภาษาการเขียนโปรแกรม เช่น C# และ Java ที่ทำหน้าที่เป็นระบบกู้คืนหน่วยความจำ เอ็นจิ้นการรวบรวมขยะ (GC) เป็นส่วนประกอบของภาษาการเขียนโปรแกรมที่อนุญาตให้ปล่อยพื้นที่หน่วยความจำอัตโนมัติสำหรับออบเจ็กต์ที่แอปพลิเคชันไม่ได้ใช้อีกต่อไป
29. การมีเพศสัมพันธ์ที่แม่นยำคืออะไร?
หมายถึงสถานการณ์ที่ชั้นเรียนต่าง ๆ พึ่งพาซึ่งกันและกันและแบ่งปันความรู้ การเชื่อมต่อที่แข็งแกร่งเกิดขึ้นเมื่อชั้นเรียนหนึ่งมีความรู้โดยละเอียดเกี่ยวกับอีกชั้นเรียนหนึ่ง คุณสามารถระบุการมองเห็นของคลาส เมธอด หรือตัวแปรโดยใช้ตัวปรับเปลี่ยนการเข้าถึง อินเทอร์เฟซถูกใช้เพื่อให้การมีเพศสัมพันธ์ที่อ่อนแอกว่า
30. ความสามัคคีคืออะไรกันแน่?
วิธีที่องค์ประกอบบรรลุกิจกรรมบางอย่างเรียกว่าการทำงานร่วมกัน แนวทางที่เข้มแข็งและเหนียวแน่นจะทำงานตามที่กำหนดไว้ ในขณะที่วิธีการที่อ่อนแอและเหนียวแน่นจะแบ่งงานเดี่ยวออกเป็นงานย่อยๆ หลายงานแล้วจึงทำให้เสร็จ
แพ็คเกจ Java.io ค่อนข้างสอดคล้องกัน แต่แพ็คเกจ java.util ไม่ใช่
31. อธิบายบล็อกการลอง/จับ
เมื่อโปรแกรมพบข้อผิดพลาดเนื่องจากรหัสหรือข้อมูลไม่ถูกต้อง "ลอง" และ "จับ" จะระบุวิธีจัดการ บล็อกการลองคือชื่อของส่วนของรหัสเมื่อมีข้อยกเว้นเกิดขึ้น บล็อก catch ใช้เพื่อดักจับและจัดการกับข้อยกเว้นจากบล็อกการลอง
32. อธิบายบล็อกสุดท้าย
โค้ดส่วนการทำงานของคีย์เวิร์ด try ถูกระบุอยู่ท้ายสุด มันกำหนดรหัสที่ทำงานทันทีหลังจากการทดลองใช้และบล็อกการดักจับใด ๆ ก่อนที่วิธีการจะเสร็จสมบูรณ์ บล็อกสุดท้ายจะทำงานเสมอไม่ว่าจะมีการโยนหรือจับข้อยกเว้น
33. อินเทอร์เฟซคืออะไรกันแน่?
อินเทอร์เฟซเป็นการผสมผสานระหว่างวิธีนามธรรมและชนิดข้อมูลที่กำหนดโดยผู้ใช้ คลาสใช้อินเทอร์เฟซ โดยสืบทอดฟังก์ชันนามธรรมของอินเทอร์เฟซ
คลาสแสดงถึงคุณสมบัติและพฤติกรรมของอ็อบเจ็กต์ ในขณะที่อินเทอร์เฟซรวมถึงพฤติกรรมที่คลาสนำไปใช้ อินเทอร์เฟซแสดงถึง "อะไร" ในขณะที่คลาสแสดงถึง "อย่างไร"
34. องค์ประกอบคืออะไรกันแน่?
องค์ประกอบสามารถใช้เพื่อให้เกิดการเชื่อมต่อ มันแสดงให้เห็นการเชื่อมโยงออบเจ็กต์ที่แข็งแกร่งระหว่างออบเจ็กต์ที่ขึ้นต่อกันและอิสระ ตรงข้ามกับการรวม ในกรณีนี้ไม่มีวัตถุที่ขึ้นต่อกันและจะถูกลบออกหากวัตถุหลักถูกลบ
35. การผูกมัดคอนสตรัคเตอร์คืออะไรกันแน่?
การโยงตัวสร้างเป็นเทคนิคสำหรับการเรียกตัวสร้างตัวหนึ่งจากอีกตัวหนึ่งซึ่งสัมพันธ์กับการอ้างอิงวัตถุปัจจุบัน มีสองตัวเลือก:
- ตัวสร้างในคลาสปัจจุบันสามารถอ้างอิงได้โดยใช้คีย์เวิร์ด "นี้"
- คีย์เวิร์ด "super" จะใช้เรียกตัวสร้างจากคลาสฐาน
สรุป
การเขียนโปรแกรมเชิงวัตถุจำเป็นต้องคิดเกี่ยวกับโครงสร้างของโปรแกรมและเตรียมการล่วงหน้า ศึกษาวิธีการแบ่งข้อกำหนดออกเป็นคลาสพื้นฐานที่นำกลับมาใช้ใหม่ได้ ซึ่งสามารถใช้สร้างอินสแตนซ์ของสิ่งต่างๆ ได้
โดยรวมแล้ว การโอบกอด OOP จะช่วยปรับปรุง โครงสร้างข้อมูล และนำกลับมาใช้ใหม่ได้ซึ่งช่วยประหยัดเวลาในระยะยาว ดู ซีรี่ส์สัมภาษณ์ของ Hashdork เพื่อช่วยในการเตรียมตัวสัมภาษณ์
เขียนความเห็น