นักเรียนที่เรียน C++ หรือ Java จะต้องเข้าใจเนื้อหาเชิงวัตถุ โดยทั่วไปจะแบ่งออกเป็นสองวิธีในการออกแบบ: ภาษา เชิงวัตถุ และ เชิงกระบวนการ กระบวนการ Python ได้รับการออกแบบให้เป็นภาษาเชิงวัตถุ ดังนั้น Python จึงเป็นภาษาโปรแกรมเชิงวัตถุ ในส่วนนี้ เราจะเรียนรู้เกี่ยวกับแนวคิดของการเขียนโปรแกรมเชิงวัตถุก่อน
ก่อนอื่น เราต้องเรียนรู้ว่า object คืออะไร คำว่า object ในภาษาอังกฤษนั้นมีอยู่ทุกที่ในชีวิตของเรา มีคอมพิวเตอร์อยู่ตรงหน้าคุณ มีโทรศัพท์มือถืออยู่ในมือ หรือหนังสืออยู่บนนั้น ชั้นวางหนังสือเป็นวัตถุทั้งหมด
เมื่อเราเรียนรู้วัตถุ เราสามารถมองวัตถุเป็นสองส่วน ส่วนหนึ่งเรียกว่า คุณลักษณะ และอีกส่วนหนึ่งเรียกว่า พฤติกรรม
ตัวอย่างเช่น เราซื้อนาฬิกาปลุก เนื้อหาของนาฬิกาปลุกคือคุณลักษณะของมัน และเมื่อนาฬิกาปลุกดังขึ้น ก็คือพฤติกรรมของมัน
ประเภทข้อมูลที่เราศึกษามาก่อนหน้านี้ทั้งหมดเป็นของคลาสต่างๆ คลาสต่างๆ เป็นโครงสร้างพื้นฐานของคลาสที่มีวิธีการต่างๆ มากมาย เมื่อเราเรียนรู้คลาสต่างๆ ห้องเรียนจำเป็นต้องเรียนภาษาจีน คณิตศาสตร์ และภาษาอังกฤษ เมื่อนักเรียนเข้าร่วมชั้นเรียนนี้ เขาจำเป็นต้องเรียนรู้ทั้งสามวิชานี้ บ่อยครั้งจะเป็นพาหะของคำจำกัดความของเรา และสมาชิกในชั้นเรียนจะมีคุณสมบัติและพฤติกรรมเหมือนกัน
เราสามารถมองรถยนต์ทุกคันเป็นคลาส หรือเราอาจคิดว่าเครื่องบินทุกคันเป็นคลาสก็ได้ คลาสเป็นแนวคิดที่ค่อนข้างเป็นนามธรรม และเราต้องกำหนดมันตามสถานการณ์จริงเมื่อกำหนดมัน
การเขียนโปรแกรมเชิงวัตถุมีลักษณะสำคัญสามประการ: การห่อหุ้ม การสืบทอด และความหลากหลาย
ในส่วนของบรรจุภัณฑ์ เราสามารถเรียนรู้จากตัวอย่างในชีวิตได้ อันดับแรก มาลองคิดดูก่อนว่าบรรจุภัณฑ์คือการปิดผนึกสิ่งต่างๆ ไว้ เมื่อเราซื้อลำโพง จะมีแผงวงจร วงจร และโครงสร้างอื่นๆ อยู่ภายในลำโพง แต่ผู้ใช้ของเราไม่มี จำเป็นต้องรู้โครงสร้างภายในและหลักการใช้งาน โครงสร้างเหล่านี้จึงถูกห่อหุ้มไว้ภายในกล่อง และมีอินเทอร์เฟซบางส่วนไว้นอกกล่องเพื่อให้เราเชื่อมต่อได้ สิ่งเหล่านี้ภายในลำโพงก็ห่อหุ้มไว้
เรายังสามารถใช้แนวคิดของการห่อหุ้มเมื่อเขียนโปรแกรมได้ สำหรับเนื้อหาบางส่วน เราไม่ได้จัดให้มีอินเทอร์เฟซสำหรับการใช้งานเหล่านั้น
เมื่อพูดถึงมรดก ทุกคนมักจะนึกถึงมรดก หากเราใช้มรดกเพื่ออธิบายมรดก มรดกในชีวิตจริงมักจะเป็นแบบหนึ่งต่อหนึ่ง มรดกที่ได้รับจากคนหลายคนก็จะเป็นมรดก มีขนาดใหญ่มาก อาจไม่สอดคล้องกันและการสืบทอดของเราในโปรแกรมคือความสัมพันธ์แบบสืบทอดที่สมบูรณ์
เราสามารถมองรถยนต์เป็นวัตถุได้ และไม่ว่าจะเป็น Mercedes-Benz, BMW หรือ Volkswagen รถยนต์เหล่านี้สืบทอดคุณลักษณะและพฤติกรรมทั้งหมดของรถ เราถือว่ารถเป็นคลาสและกำหนดคุณลักษณะของการขับขี่บนพื้นดินและยาง 4 เส้นสำหรับรถยนต์ จากนั้นเมื่อ BMW สืบทอดคลาสนี้ รถ BMW จะได้รับคุณลักษณะของการขับขี่บนพื้นดินและยาง 4 เส้น ถ้าเราให้ รถยนต์ มีการกำหนดพฤติกรรมการขับขี่ด้วยความเร็วสูง แล้วรถ BMW ก็สืบทอดพฤติกรรมการขับขี่ด้วยความเร็วสูงด้วยเช่นกัน
เมื่อเราใช้ความสัมพันธ์แบบสืบทอด เราจะเรียกรถยนต์ว่า 'ซูเปอร์คลาส' หรือ 'คลาสหลัก' และรถ BMW ที่สืบทอดมาจะเรียกว่า 'คลาสย่อย' หรือ 'คลาสที่ได้รับ'
Polymorphism หมายความว่าคลาสพาเรนต์มีแอตทริบิวต์หลายรายการ และคลาสย่อยหลายคลาสได้รับมาจากคุณลักษณะเหล่านี้ มาดูตัวอย่างต่อไปกันดีกว่า และคุณสมบัติทั้งสองนี้รวมไปถึงความสามารถในการบรรทุกคนแล้วเราล่ะ เมื่อกำหนดการสืบทอดของคลาสย่อย คุณสามารถกำหนดคลาสย่อยได้สองคลาส คลาสแรกคือรถยนต์ที่สามารถบรรทุกคนได้แต่ขับขี่บนท้องถนน และอีกคลาสคือรถยนต์ที่สามารถบรรทุกคนได้แต่อยู่บนเส้นทาง วิธีที่คลาสย่อยหลายคลาสมีคุณสมบัติสาธารณะและส่วนตัวเรียกว่าความหลากหลาย
เกี่ยวกับแนวคิดทั้งสองของคลาสและอ็อบเจ็กต์ พวกมันมีความสำคัญมากเมื่อเราเรียนรู้การเขียนโปรแกรม ไม่ว่าในอุตสาหกรรมคอมพิวเตอร์ใดก็ตาม การใช้คลาสและอ็อบเจ็กต์จะต้องแยกจากกันไม่ได้ ใช้ตัวอย่างเพิ่มเติมในชีวิตเพื่อพิจารณาว่าคลาสและอ็อบเจ็กต์คืออะไร ในส่วนถัดไป เราจะได้เรียนรู้เกี่ยวกับคำจำกัดความและการใช้คลาสต่างๆ