Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เริ่มต้นการเขียนโปรแกรมเชิงวัตถุ (OOP) ใน C++ อย่างไร?

การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming - OOP) เป็นพาราดิมการเขียนโปรแกรมที่อิงตามแนวคิดของ "วัตถุ" (objects) ซึ่งอาจประกอบด้วยข้อมูลในรูปของแอตทริบิวต์ (attributes) และคำสั่งในการทำสิ่งต่างๆ ในรูปของเมธอด (methods)

ตัวอย่างเช่น บุคคลหนึ่งเป็นวัตถุที่มีคุณสมบัติบางอย่าง เช่น สูง, เพศ, อายุ เป็นต้น มีเมธอดบางอย่าง เช่น เดิน, พูด และอื่นๆ

วัตถุ (Object)

นี่คือหน่วยพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ ข้อมูลและฟังก์ชันที่ทำงานบนข้อมูลถูกรวมเป็นหน่วยเดียวที่เรียกว่าวัตถุ

คลาส (Class)

เมื่อคุณกำหนดคลาส คุณกำหนดแม่แบบ (blueprint) สำหรับวัตถุ นี่ไม่ได้กำหนดข้อมูลจริง แต่กำหนดว่าชื่อคลาสหมายถึงอะไร คือ วัตถุของคลาสจะประกอบด้วยอะไรและสามารถดำเนินการอะไรได้บ้าง

OOP มี 4 แนวคิดพื้นฐานที่เป็นรากฐาน มาดูแต่ละอย่าง -

  • Abstraction (การนามธรรม) - หมายถึงการให้ข้อมูลที่จำเป็นเท่านั้นแก่โลกภายนอก และซ่อนรายละเอียดเบื้องหลัง ตัวอย่างเช่น เว็บเซิร์ฟเวอร์ซ่อนวิธีการประมวลผลข้อมูลที่ได้รับ ผู้ใช้ปลายทางเพียงเรียก endpoint และได้ข้อมูลกลับมา
  • Encapsulation (การห่อหุ้ม) - เป็นกระบวนการรวมสมาชิกข้อมูล (ตัวแปร, คุณสมบัติ) และฟังก์ชันสมาชิก (เมธอด) เป็นหน่วยเดียว ยังเป็นวิธีจำกัดการเข้าถึงคุณสมบัติบางอย่าง
  • Inheritance (การสืบทอด) - ความสามารถในการสร้างคลาสใหม่จากคลาสที่มีอยู่ เรียกว่าการสืบทอด โดยใช้การสืบทอด เราสร้างคลาสลูก (Child class) จากคลาสแม่ (Parent class) ให้สืบทอดคุณสมบัติและเมธอดของแม่ และสามารถมีคุณสมบัติและเมธอดเพิ่มเติมของตัวเองได้ ตัวอย่างเช่น หากมีคลาส Vehicle ที่มีคุณสมบัติสี, ราคา เราสร้างคลาส Bike และ Car จากมัน ซึ่งมีคุณสมบัติทั้งสองนั้นและคุณสมบัติเฉพาะตัว เช่น รถยนต์มี numberOfWindows แต่จักรยานไม่มี เหมือนกันกับเมธอด
  • Polymorphism (พอลิมอร์ฟิซึม) - ความหมายคือการมีหลายรูปแบบ ปกติเกิดขึ้นเมื่อมีลำดับชั้นของคลาสและเชื่อมโยงกันด้วยการสืบทอด พอลิมอร์ฟิซึมใน C++ หมายถึง การเรียกฟังก์ชันสมาชิกจะทำให้ฟังก์ชันที่ต่างกันถูกดำเนินการ ขึ้นอยู่กับประเภทของวัตถุที่เรียกฟังก์ชัน ตัวอย่างเช่น หากมีคลาส Shape และเมธอด getArea แล้วขึ้นอยู่กับรูปร่าง วิธีคำนวณพื้นที่จะต่างกัน (วงกลม vs สี่เหลี่ยม)

คุณสามารถไปศึกษาบทเรียน C++ Object Oriented Programming ที่ดีเยี่ยมบน tutorials point เพื่อเริ่มเรียนรู้ OOP