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

แนวคิดพื้นฐานของการเขียนโปรแกรมเชิงวัตถุโดยใช้ C++


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

แนวคิดพื้นฐานบางประการของการเขียนโปรแกรมเชิงวัตถุ ได้แก่ −

  • คลาส
  • วัตถุ
  • การห่อหุ้ม
  • โพลิมอร์ฟิซึม
  • มรดก
  • บทคัดย่อ

ชั้นเรียน − คลาสคือประเภทข้อมูลที่มีสมาชิกเป็นของตัวเอง เช่น สมาชิกข้อมูลและฟังก์ชันของสมาชิก เป็นพิมพ์เขียวสำหรับอ็อบเจ็กต์ในภาษาการเขียนโปรแกรมเชิงวัตถุ เป็นหน่วยการสร้างพื้นฐานของการเขียนโปรแกรมเชิงวัตถุใน 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 กันดีกว่า เมื่อเราขี่มอเตอร์ไซค์ เรารู้แค่ว่าการกดเบรกจะทำให้จักรยานหยุด และการหมุนคันเร่งจะเร่งขึ้น แต่คุณไม่รู้ว่ามันทำงานอย่างไร และไม่คิดว่าเราควรจะรู้ นั่นเป็นสาเหตุว่าทำไมสิ่งนี้จึงเกิดขึ้นจากแนวคิดเดียวกับการสรุปข้อมูลแนวคิด

ในภาษาซี พลัส พลัส พลัส เขียนโปรแกรมได้สองวิธีโดยใช้การดึงข้อมูลออกมาเป็นนามธรรม -

  • การใช้คลาส
  • การใช้ไฟล์ส่วนหัว