ข้อสอบวิชาการเขียนโปรแกรมเชิงวัตถุ
ข้อสอบวิชาการเขียนโปรแกรมเชิงวัตถุ
ข้อสอบรายวิชาการเขียนโปรแกรมเชิงวัตถุ รหัสวิชา 319110-2005 หน่วยกิต 2-2-3 ข้อสอบมีจำนวน 30 ข้อ ระยะผ่านเกณฑ์การทดสอบ 80% ขึ้นไป ระยะเวลาในการทำข้อสอบ 1 ชั่วงโมง 30 นาที
คำสั่ง : ให้เลือกคำตอบข้อที่ถูกที่สุดเพียงข้อเดียว
1. OOP ย่อมาจากคำว่าอะไร?
ก. Object-Oriented Process
ข. Object-Oriented Programming
ค. Object Oriented Principle
ง. Object-Oriented Procedure
2. หลักการสำคัญของ OOP มีกี่ข้อ และประกอบด้วยอะไรบ้าง?
ก. 2 ข้อ ได้แก่ Encapsulation และ Abstraction
ข. 3 ข้อ ได้แก่ Inheritance, Polymorphism และ Encapsulation
ค. 4 ข้อ ได้แก่ Encapsulation, Inheritance, Polymorphism, Abstraction
ง. 5 ข้อ ได้แก่ Encapsulation, Inheritance, Polymorphism, Abstraction และ Association
3. หากมีคลาส Car และต้องการสร้างอ็อบเจกต์ใหม่ชื่อ my_car เราควรเขียนคำสั่งอย่างไร?
ก. Car = my_car()
ข. my_car = Car()
ค. my_car(Car)
ง. Car(my_car)
4. การใช้คำว่า "self" ใน Python มีวัตถุประสงค์เพื่ออะไร?
ก. เพื่อเรียกฟังก์ชันของคลาสอื่น
ข. เพื่อระบุว่าเป็นคลาสภายใน
ค. เพื่ออ้างถึงตัวแปรและเมธอดในอ็อบเจกต์เดียวกัน
ง. เพื่อสร้างตัวแปรแบบ global
5. ตัวแปรที่ประกาศด้วยเครื่องหมายขีดล่างคู่ (__) ข้างหน้าชื่อในคลาส หมายถึงอะไร?
ก. ตัวแปรที่จะถูกซ่อนจากภายนอกคลาส
ข. ตัวแปรที่สามารถเข้าถึงได้จากภายนอกคลาส
ค. ตัวแปรที่มีค่าไม่สามารถเปลี่ยนแปลงได้
ง. ตัวแปรที่กำหนดค่าอัตโนมัติ
6. ข้อใดคือประโยชน์ของ Encapsulation?
ก. เพิ่มประสิทธิภาพการทำงานของโปรแกรม
ข. ช่วยให้ข้อมูลในคลาสมีความปลอดภัยมากขึ้นและจัดการง่าย
ค. ทำให้สามารถเรียกใช้ฟังก์ชันจากภายนอกได้โดยไม่ต้องสร้างคลาสใหม่
ง. ทำให้โค้ดมีความสั้นและเข้าใจง่ายขึ้น
7. คำว่า “getter” และ “setter” เกี่ยวข้องกับ Encapsulation อย่างไร?
ก. เป็นตัวแปรที่ใช้แทนค่าข้อมูลภายในคลาส
ข. เป็นฟังก์ชันที่ใช้เข้าถึงและแก้ไขข้อมูลในคลาส
ค. เป็นชนิดข้อมูลเฉพาะสำหรับคลาสที่ใช้ Encapsulation
ง. เป็นชนิดของการสืบทอด (Inheritance)
8. ข้อใดกล่าวถึง Encapsulation ได้ถูกต้องที่สุด?
ก. Encapsulation ใช้เพื่อเพิ่มประสิทธิภาพการประมวลผล
ข. Encapsulation ช่วยป้องกันการเข้าถึงข้อมูลภายในโดยตรงจากภายนอก
ค. Encapsulation ทำให้ข้อมูลทั้งหมดในคลาสสามารถเข้าถึงได้จากคลาสอื่น
ง. Encapsulation ไม่จำเป็นสำหรับการเขียนโปรแกรมเชิงวัตถุ
9. ข้อใดเป็นการประกาศตัวแปรที่ใช้ Encapsulation ในภาษา Java?
ก. public int age;
ข. private int age;
ค. protected int age;
ง. int age;
10. คำว่า "Superclass" หมายถึงอะไร?
ก. คลาสที่ถูกสืบทอดไป
ข. คลาสที่ไม่สามารถสืบทอดได้
ค. คลาสที่มีแต่ตัวแปร
ง. คลาสที่ไม่ได้ใช้ในโปรแกรม
11. การสืบทอดในภาษาโปรแกรมเชิงวัตถุ (OOP) คืออะไร?
ก. การสร้างฟังก์ชันที่มีชื่อเดียวกันในหลายๆ คลาส
ข. การสร้างคลาสใหม่โดยใช้คุณสมบัติของคลาสที่มีอยู่แล้ว
ค. การสร้างตัวแปรหลายตัวในคลาสเดียว
ง. การสร้างคลาสที่มีแต่เมธอดโดยไม่มีข้อมูล
12. คำว่า "Superclass" หมายถึงอะไร?
ก. คลาสที่ถูกสืบทอดไป
ข. คลาสที่ไม่สามารถสืบทอดได้
ค. คลาสที่มีแต่ตัวแปร
ง. คลาสที่ไม่ได้ใช้ในโปรแกรม
13. ถ้าคลาส B สืบทอดจากคลาส A คลาสใดคือ "Subclass"?
ก. คลาส A
ข. คลาส B
ค. ทั้งสองคลาส
ง. ไม่มีข้อใดถูก
14. การใช้ Overriding เหมาะกับสถานการณ์ใด?
ก. เมื่อมีการเพิ่มฟังก์ชันใหม่ในคลาสย่อย
ข. เมื่อมีความต้องการให้ฟังก์ชันในคลาสย่อยทำงานแตกต่างจากคลาสหลัก
ค. เมื่อมีการประกาศตัวแปรหลายตัวในคลาสย่อย
ง. เมื่อมีความต้องการเรียกใช้ฟังก์ชันของคลาสหลักในคลาสย่อย
15. Polymorphism แบบ Runtime มีข้อดีอย่างไร?
ก. ทำให้โปรแกรมคอมไพล์ได้เร็วขึ้น
ข. เพิ่มความยืดหยุ่นในการเรียกใช้ฟังก์ชัน
ค. ใช้พารามิเตอร์ได้มากขึ้นในฟังก์ชัน
ง. ลดการใช้หน่วยความจำของโปรแกรม
16. การใช้ Polymorphism ในการเขียนโปรแกรมช่วยในด้านใดบ้าง?
ก. ทำให้โค้ดอ่านยากขึ้น
ข. ลดการใช้โค้ดที่ซ้ำซ้อนและเพิ่มความยืดหยุ่นในการขยายโปรแกรม
ค. ทำให้โปรแกรมทำงานได้ช้าลง
ง. ลดการใช้วัตถุในการเขียนโปรแกรม
17. ข้อใดต่อไปนี้เป็นตัวอย่างของ Abstraction ในชีวิตประจำวัน?
ก. การขับรถโดยใช้พวงมาลัย
ข.การซ่อมเครื่องยนต์ของรถยนต์
ค.การเขียนโปรแกรมควบคุมรถยนต์
ง.การแก้ไขระบบไฟในบ้าน
18. ในคณิตศาสตร์ การใช้สมการเชิงสัญลักษณ์ เช่น y=mx+cy = mx + cy=mx+c เป็นตัวอย่างของอะไร?
ก. การวิเคราะห์ข้อมูล
ข.การสร้างแบบจำลอง
ค.Abstraction
ง.การคำนวณเชิงตัวเลข
19. ข้อใดคือเป้าหมายของการใช้ Abstraction?
ก. ลดเวลาในการเขียนโค้ด
ข.ซ่อนรายละเอียดที่ไม่จำเป็นและทำให้ระบบง่ายต่อการเข้าใจ
ค.ทำให้โปรแกรมเร็วขึ้น
ง.เพิ่มประสิทธิภาพการใช้หน่วยความจำ
20. ข้อใดต่อไปนี้เป็นตัวอย่างที่แสดงการใช้ Abstraction ในระบบคอมพิวเตอร์?
ก. การเขียนโค้ดด้วยภาษา Assembly
ข.การใช้ฟังก์ชันในไลบรารีที่ผู้ใช้งานไม่ต้องรู้ว่ามีการทำงานอย่างไร
ค.การแก้ไขโครงสร้างฐานข้อมูลในระดับคำสั่ง SQL
ง.การตั้งค่าไฟล์ระบบปฏิบัติการ
21. ข้อใดแสดงถึงประโยชน์ของการใช้ Abstraction ในซอฟต์แวร์?
ก. ทำให้โปรแกรมรันเร็วขึ้น
ข.ลดความซับซ้อนและช่วยให้โค้ดเข้าใจง่ายขึ้น
ค.เพิ่มจำนวนฟีเจอร์ในซอฟต์แวร์
ง.ลดจำนวนข้อผิดพลาดในโปรแกรมโดยอัตโนมัติ
22. Constructor คืออะไร?
ก. ฟังก์ชันที่ใช้สร้างออบเจกต์
ข. ฟังก์ชันที่เรียกใช้เมื่อออบเจกต์ถูกทำลาย
ค. ฟังก์ชันที่ต้องเรียกใช้ด้วยตนเองเสมอ
ง. ฟังก์ชันที่กำหนดค่าเริ่มต้นให้กับออบเจกต์
23. Destructor ทำหน้าที่อะไร?
ก. ใช้กำหนดค่าเริ่มต้นให้กับออบเจกต์
ข. ใช้ปล่อยหน่วยความจำหรือทำความสะอาดเมื่อออบเจกต์ไม่ใช้งาน
ค. ใช้สร้างสำเนาออบเจกต์
ง. ใช้เรียก Constructor ใหม่
24. ในภาษา C++ ชื่อของ Constructor จะต้องมีอะไรบ้าง
ก. มีชื่อเหมือนกับคลาส
ข. มีชื่อเหมือนกับไฟล์โปรแกรม
ค. มีชื่อเหมือนกับชื่อไฟล์ Header
ง. มีชื่อเหมือนกับตัวแปร
25. ข้อใดคือคำสั่งที่ใช้ในการจัดการข้อผิดพลาดใน Python?
ก. try-except
ข. if-else
ค. for-while
ง. function-return
26. ข้อใดคือการใช้ except เพื่อจับข้อผิดพลาดที่ไม่รู้จัก?
ก. except:
ข. except Exception:
ค. except Error:
ง. except (Exception, ValueError):
27. คำสั่ง raise ใช้สำหรับอะไรใน Python?
ก. เพื่อหยุดการทำงานของโปรแกรม
ข. เพื่อจับข้อผิดพลาด
ค. เพื่อสร้างข้อผิดพลาดที่กำหนดเอง
ง. เพื่อแสดงผลลัพธ์
28. ข้อใดคือหลักการสำคัญของการเขียนโปรแกรมเชิงวัตถุ?
ก. การสร้างฟังก์ชันที่ใช้งานได้อย่างมีประสิทธิภาพ
ข. การสร้างและใช้คลาส (Classes) และออบเจ็กต์ (Objects)
ค. การใช้คำสั่งเงื่อนไขและลูป
ง. การใช้ตัวแปรสาธารณะเพื่อการเข้าถึงข้อมูล
29. ข้อใดไม่ใช่หลักการของ OOP?
ก. Abstraction
ข. Encapsulation
ค. Reusability
ง. Iteration
30. ข้อใดคือข้อดีของการใช้ OOP?
ก. สามารถจัดการข้อมูลได้ง่ายขึ้น
ข. เพิ่มความซับซ้อนในการเขียนโปรแกรม
ค. สามารถแยกส่วนของโปรแกรมได้ง่ายขึ้น
ง. การเขียนโปรแกรมจะเร็วขึ้น
แบบฟอร์มข้อสอบรายวิชาการเขียนโปรแกรมเชิงวัตถุ