การเขียนโปรแกรมเชิงวัตถุเป็นประเภทของการเขียนโปรแกรมที่ใช้อ็อบเจกต์และคลาสของการทำงานของมัน การเขียนโปรแกรมเชิงวัตถุอิงตามเอนทิตีในโลกแห่งความเป็นจริง เช่น การสืบทอด ความหลากหลาย การซ่อนข้อมูล ฯลฯ โดยมีจุดมุ่งหมายเพื่อเชื่อมโยงข้อมูลและการทำงานของชุดข้อมูลเหล่านี้เข้าด้วยกันเป็นเอนทิตีเดียวเพื่อจำกัดการใช้งาน
แนวคิดพื้นฐานบางประการของการเขียนโปรแกรมเชิงวัตถุ ได้แก่ −
- คลาส
- วัตถุ
- การห่อหุ้ม
- โพลิมอร์ฟิซึม
- มรดก
- บทคัดย่อ
ชั้นเรียน − คลาสคือประเภทข้อมูลที่มีสมาชิกเป็นของตัวเอง เช่น สมาชิกข้อมูลและฟังก์ชันของสมาชิก เป็นพิมพ์เขียวสำหรับอ็อบเจ็กต์ในภาษาการเขียนโปรแกรมเชิงวัตถุ เป็นหน่วยการสร้างพื้นฐานของการเขียนโปรแกรมเชิงวัตถุใน c ++ สมาชิกของชั้นเรียนสามารถเข้าถึงได้ในภาษาการเขียนโปรแกรมโดยการสร้างอินสแตนซ์ของชั้นเรียน
คุณสมบัติที่สำคัญบางประการของคลาสคือ −
-
ชั้นเรียน เป็นประเภทข้อมูลที่กำหนดโดยผู้ใช้
-
ชั้นเรียนประกอบด้วยสมาชิก เช่น สมาชิกข้อมูลและฟังก์ชันของสมาชิก
-
สมาชิกข้อมูล เป็นตัวแปรของคลาส
-
ฟังก์ชั่นสมาชิก เป็นวิธีการที่ใช้ในการจัดการกับสมาชิกข้อมูล
-
สมาชิกข้อมูลกำหนดคุณสมบัติของคลาสในขณะที่ฟังก์ชันสมาชิกกำหนดพฤติกรรมของคลาส
คลาสสามารถมีได้หลายอ็อบเจ็กต์ที่มีคุณสมบัติและพฤติกรรมที่เหมือนกันสำหรับออบเจกต์ทั้งหมด
ไวยากรณ์
class class_name { data_type data_name; return_type method_name(parameters); }
วัตถุ − วัตถุเป็นตัวอย่างของคลาส เป็นเอนทิตีที่มีคุณสมบัติและพฤติกรรมที่ใช้ในการเขียนโปรแกรมเชิงวัตถุ วัตถุคือเอนทิตีที่สร้างขึ้นเพื่อจัดสรรหน่วยความจำ คลาสเมื่อกำหนดจะไม่มีส่วนของหน่วยความจำซึ่งจะถูกจัดสรรทันทีที่สร้างอ็อบเจ็กต์
ไวยากรณ์
class_name object_name;
ตัวอย่าง
#include<iostream> using namespace std; class calculator { int number1; int number2; char symbol; public : void add() { cout<<"The sum is "<<number1 + number2 ; } void subtract() { cout<<"The subtraction is "<<number1 - number2 ; } void multiply() { cout<<"The multiplication is "<<number1 * number2 ; } void divide() { cout<<"The division is "<<number1 / number2 ; } calculator (int a , int b , char sym) { number1 = a; number2 = b; symbol = sym; switch(symbol){ case '+' : add(); break; case '-' : add(); break; case '*' : add(); break; case '/' : add(); break; default : cout<<"Wrong operator"; } } }; int main() { calculator c1(12 , 34 , '+'); }
ผลลัพธ์
The sum is 46
การห่อหุ้ม ในการเขียนโปรแกรมเชิงวัตถุ การห่อหุ้มเป็นแนวคิดของการห่อข้อมูลและข้อมูลเข้าด้วยกันในหน่วยเดียว คำจำกัดความอย่างเป็นทางการของการห่อหุ้มคือ:การห่อหุ้มมีผลผูกพันกับข้อมูลและฟังก์ชันที่เกี่ยวข้องที่สามารถจัดการข้อมูลได้
มาทำความเข้าใจหัวข้อด้วยตัวอย่างชีวิตจริงง่ายๆ
ในวิทยาลัยของเรา เรามีแผนกต่างๆ สำหรับแต่ละหลักสูตร เช่น วิทยาการคอมพิวเตอร์ เทคโนโลยีสารสนเทศ อิเล็กทรอนิกส์ ฯลฯ แต่ละแผนกมีนักเรียนและวิชาของตนเองที่คอยติดตามและกำลังสอน ให้คิดว่าแต่ละแผนกเป็นชั้นเรียนที่สรุปข้อมูลเกี่ยวกับนักเรียนของแผนกนั้นและวิชาที่จะสอน นอกจากนี้ แผนกหนึ่งยังมีกฎและแนวทางตายตัวที่นักเรียนจะต้องปฏิบัติตาม เช่น การกำหนดเวลา วิธีการที่ใช้ในการเรียนรู้ เป็นต้น นี่คือการห่อหุ้มในชีวิตจริง มีข้อมูล และมีวิธีการจัดการข้อมูล
เนื่องจากแนวคิดของการห่อหุ้มในการเขียนโปรแกรมเชิงวัตถุ มีแนวคิดที่สำคัญอีกอย่างหนึ่งที่เป็นไปได้ นั่นคือ data abstraction หรือการซ่อนข้อมูล เป็นไปได้เนื่องจากการห่อหุ้มจะซ่อนข้อมูลที่แสดงเฉพาะข้อมูลที่จำเป็นในการแสดง
ความหลากหลาย ชื่อกำหนดพหุสัณฐานได้หลายรูปแบบ ซึ่งหมายความว่าพหุสัณฐานคือความสามารถของการเขียนโปรแกรมเชิงวัตถุเพื่อทำงานโดยใช้หลายรูปแบบ ลักษณะการทำงานของเมธอดขึ้นอยู่กับประเภทหรือสถานการณ์ที่เรียกเมธอด
มาดูตัวอย่างในชีวิตจริงกัน บุคคลสามารถมีพฤติกรรมได้มากกว่าหนึ่งอย่างขึ้นอยู่กับสถานการณ์ เหมือนผู้หญิง แม่ ผู้จัดการ และลูกสาว และสิ่งนี้เป็นตัวกำหนดพฤติกรรมของเธอ นี่คือที่มาของแนวคิดเรื่องความหลากหลาย
ในภาษาโปรแกรม c++ ความหลากหลายสามารถทำได้โดยใช้สองวิธี เป็นการโอเวอร์โหลดโอเปอเรเตอร์และโอเวอร์โหลดฟังก์ชัน
โอเปอเรเตอร์โอเวอร์โหลด ในโอเปอเรเตอร์โอเวอร์โหลดและผู้ปฏิบัติงานอาจมีพฤติกรรมหลายอย่างในการใช้งานที่แตกต่างกัน
ฟังก์ชั่นโอเวอร์โหลด ฟังก์ชันชื่อเดียวกัน ทำได้หลายประเภท ขึ้นอยู่กับเงื่อนไขบางประการ
มรดก เป็นความสามารถของคลาสในการสืบทอดหรือสืบทอดคุณสมบัติหรือลักษณะเฉพาะของคลาสอื่น เป็นสิ่งสำคัญมากและโปรแกรมเชิงวัตถุเนื่องจากช่วยให้สามารถนำกลับมาใช้ใหม่ได้เช่นการใช้วิธีการที่กำหนดไว้ในคลาสอื่นโดยใช้การสืบทอด คลาสที่ได้รับคุณสมบัติจากคลาสอื่นเรียกว่าคลาสย่อยหรือคลาสย่อยและคลาสที่คุณสมบัติได้รับการสืบทอดคือคลาสฐานหรือคลาสพาเรนต์
ภาษาโปรแกรม C plus plus รองรับการสืบทอดประเภทต่อไปนี้
- มรดกเดี่ยว
- มรดกหลายรายการ
- การสืบทอดหลายระดับ
- การสืบทอดตามลำดับชั้น
- มรดกลูกผสม
นามธรรม การแยกข้อมูลหรือการซ่อนข้อมูลเป็นแนวคิดของการซ่อนข้อมูลและแสดงเฉพาะข้อมูลที่เกี่ยวข้องต่อผู้ใช้ขั้นสุดท้าย นอกจากนี้ยังเป็นส่วนสำคัญของการเขียนโปรแกรมเชิงวัตถุ
เรามาเอาตัวอย่างชีวิตจริงมาทำความเข้าใจ Concept กันดีกว่า เมื่อเราขี่มอเตอร์ไซค์ เรารู้แค่ว่าการกดเบรกจะทำให้จักรยานหยุด และการหมุนคันเร่งจะเร่งขึ้น แต่คุณไม่รู้ว่ามันทำงานอย่างไร และไม่คิดว่าเราควรจะรู้ นั่นเป็นสาเหตุว่าทำไมสิ่งนี้จึงเกิดขึ้นจากแนวคิดเดียวกับการสรุปข้อมูลแนวคิด
ในภาษาซี พลัส พลัส พลัส เขียนโปรแกรมได้สองวิธีโดยใช้การดึงข้อมูลออกมาเป็นนามธรรม -
- การใช้คลาส
- การใช้ไฟล์ส่วนหัว