C++ Tutorial - part 76

آموزش جامع زبان برنامه‌نویسی C++ مقدماتی تا پیشرفته [0 تا 100 سی پلاس پلاس بهمراه حل تمرین و پروژه ✅] - بررسی کپسوله سازی (Encapsulation) در شی‌گرایی - قسمت 76

مقدمه

در قسمت قبلی دوره آموزشی C++، در مورد کانستراکتورها صحبت کردیم و دو نوع کانستراکتور دیفالت و معمولی را مورد بررسی قرار دادیم. حالا در این قسمت می‌خواهیم به یکی از اصلی‌ترین اجزای برنامه‌نویسی شیءگرا یعنی کپسول سازی (Encapsulation) بپردازیم. در این مقاله، به توضیح مفهوم کپسول سازی، اهمیت آن، و نحوه پیاده‌سازی آن در زبان C++ می‌پردازیم.

کپسول سازی چیست؟

کپسول سازی به معنای محدود کردن دسترسی مستقیم به داده‌ها و پراپرتی‌های کلاس از خارج از آن است. این کار با استفاده از مودیفایرهای دسترسی مثل private و public انجام می‌شود. در واقع، با استفاده از کپسول سازی می‌توانیم داده‌های داخلی کلاس را مخفی کرده و فقط از طریق متدهای مشخص شده (مثل setter و getter) به آن‌ها دسترسی داشته باشیم.

اهمیت کپسول سازی

فرض کنید در یک بازی، کاراکتری دارید که خونش با توجه به شرایط محیطی کاهش می‌یابد. اگر داده‌های مربوط به خون کاراکتر به راحتی قابل دسترسی باشد، هر کسی می‌تواند با تغییر مقدار آن، بازی را هک کند. بنابراین، توسعه‌دهندگان به کمک کپسول سازی، این داده‌ها را ایمن می‌کنند تا فقط از طریق متدهای مشخص شده قابل تغییر باشند.

پیاده‌سازی کپسول سازی در C++

در ادامه، نحوه پیاده‌سازی کپسول سازی در C++ را با یک مثال ساده بررسی می‌کنیم:

تعریف کلاس و کانستراکتور

				
					#include <iostream>
#include <string>

using namespace std;

class Employee {
private:
    string name;
    string company;
    int age;

public:
    // Constructor
    Employee(string n, string c, int a) {
        name = n;
        company = c;
        age = a;
    }

    // Getters
    string getName() { return name; }
    string getCompany() { return company; }
    int getAge() { return age; }

    // Setters
    void setName(string n) { name = n; }
    void setCompany(string c) { company = c; }
    void setAge(int a) { age = a; }

    void printInfo() {
        cout << "Name: " << name << ", Company: " << company << ", Age: " << age << endl;
    }
};

				
			

استفاده از کلاس و متدهای کپسول سازی

در این مثال، ابتدا یک شیء از کلاس Employee می‌سازیم و سپس با استفاده از متدهای getter و setter به پراپرتی‌های آن دسترسی پیدا می‌کنیم:

				
					int main() {
    // Creating an object of Employee class
    Employee emp1("Mehdi", "YouTube Code", 23);

    // Accessing properties using getter methods
    cout << emp1.getName() << endl;

    // Changing properties using setter methods
    emp1.setName("Bahram");
    emp1.printInfo();

    return 0;
}

				
			

نتیجه‌گیری

کپسول سازی یکی از مفاهیم اساسی در برنامه‌نویسی شیءگرا است که با مخفی کردن داده‌های داخلی کلاس و محدود کردن دسترسی به آن‌ها، به افزایش امنیت و یکپارچگی کد کمک می‌کند. با استفاده از کپسول سازی، می‌توانیم کنترل بیشتری بر روی داده‌ها و رفتارهای کلاس داشته باشیم.

برای یادگیری مفاهیم بیشتر مانند انتزاع (Abstraction) و چندریختی (Polymorphism) در برنامه‌نویسی شیءگرا، قسمت‌های بعدی دوره آموزشی ما را دنبال کنید.

منابع خارجی مرتبط

ادامه دوره (قسمت 77)

در قسمت بعدی به معرفی وراثت (Inheritance) در شی‌گرایی خواهیم پرداخت. اگر سوالی دارید، در بخش دیدگاه مطرح کنید. همچنین ممنون میشم با حمایت دلنشینتون از من و دوره‌ها حمایت کنید.

در این قسمت از دوره آموزشی زبان C++، به معرفی و استفاده از کانستراکتورها می‌پردازیم. کانستراکتورها ابزارهای...

در این قسمت می‌خواهیم به یکی دیگر از اصلی‌ترین اجزای برنامه‌نویسی شیءگرا یعنی وراثت (Inheritance) بپردازیم یک...

بررسی کپسوله سازی (Encapsulation) در شی‌گرایی

حق کپی ویدئو مجاز نمی‌باشد

قسمت:

جلسه هفتاد و شش

نام دوره:

آموزش جامع ++C

زمان ویدئو:

13 دقیقه

مدرس:

مهدی کاظمی

در این قسمت یادخواهید گرفت:

در قسمت قبلی دوره آموزشی C++، در مورد کانستراکتورها صحبت کردیم و دو نوع کانستراکتور دیفالت و معمولی را مورد بررسی قرار دادیم. حالا در این قسمت می‌خواهیم به یکی از اصلی‌ترین اجزای برنامه‌نویسی شیءگرا یعنی کپسول سازی (Encapsulation) بپردازیم. در این مقاله، به توضیح مفهوم کپسول سازی، اهمیت آن، و نحوه پیاده‌سازی آن در زبان C++ می‌پردازیم.

مهدی کاظمی

سلام مهدی کاظمی هستم و باعث افتخارم هست که در یک دوره جذاب دیگه با شما هستم و قراره در کنار هم از یادگیریمون لذت ببریم.

با بانک سوالات طبقه بندی شده ++C مقدماتی تا پیشرفته، جامع ترین منبع برای تسلط بر زبان سی پلاس پلاس و آمادگی کامل برای دروس مبانی و پیشرفته کامپیوتر در رشته مهندسی کامپیوتر را در اختیار خواهید داشت.

0 دیدگاه
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها