Saeid Safaei Loader Logo Saeid Safaei Loader Animated
لطفا شکیبا باشید
0

سعیدصفایی سعیدصفایی

سعید صفایی
آشنایی با مفهوم Encapsulation

Encapsulation

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

کپسوله‌سازی (Encapsulation) یکی از اصول اصلی در برنامه‌نویسی شیءگرا (OOP) است که به معنای مخفی کردن جزئیات داخلی شیء و فقط نمایش رابط کاربری آن به دیگر بخش‌های برنامه است. به عبارت دیگر، کپسوله‌سازی به این معناست که داده‌ها و متدهای یک شیء به‌طور داخلی در آن شیء قرار می‌گیرند و تنها از طریق متدهای عمومی (public methods) قابل دسترسی هستند. این ویژگی باعث افزایش امنیت داده‌ها، کاهش پیچیدگی کد، و تسهیل نگهداری و گسترش برنامه‌ها می‌شود.

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

در زبان‌های برنامه‌نویسی مانند Java، Python و C++، کپسوله‌سازی با استفاده از دسترسی‌های خاص به ویژگی‌ها و متدها پیاده‌سازی می‌شود. به‌طور معمول، ویژگی‌های یک کلاس به صورت خصوصی (private) و متدهای عمومی (public) برای دسترسی به داده‌ها تعریف می‌شوند.

در اینجا مثالی از کپسوله‌سازی در زبان Python آورده شده است:

class Person:
def __init__(self, name, age):
self.__name = name # ویژگی خصوصی
self.__age = age # ویژگی خصوصی
def get_name(self):
return self.__name # دسترسی به ویژگی از طریق متد عمومی
def set_name(self, name):
self.__name = name # تغییر ویژگی از طریق متد عمومی
def get_age(self):
return self.__age # دسترسی به ویژگی از طریق متد عمومی
def set_age(self, age):
if age > 0: # بررسی شرط قبل از تغییر داده

self.__age = age # تغییر ویژگی از طریق متد عمومی
else:

print("Age must be positive.") # ایجاد شیء از کلاس Person person1 = Person("John", 30) print(person1.get_name()) # خروجی: John person1.set_name("Doe") print(person1.get_name()) # خروجی: Doe person1.set_age(-5) # خروجی: Age must be positive.

در این مثال، ویژگی‌های name و age به‌صورت خصوصی (private) تعریف شده‌اند و فقط از طریق متدهای عمومی مانند get_name() و set_name() قابل دسترسی و تغییر هستند. این باعث می‌شود که داده‌ها تنها از طریق متدهای مجاز تغییر یابند و اطمینان حاصل شود که تغییرات در داده‌ها تحت شرایط خاصی انجام می‌شود.

در زبان Java، کپسوله‌سازی مشابه است، اما به‌طور معمول از کلمات کلیدی private، public و protected برای تعیین سطح دسترسی استفاده می‌شود:

public class Person {
private String name; // ویژگی خصوصی
private int age;
// ویژگی خصوصی
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name; // دسترسی به ویژگی از طریق متد عمومی
}
public void setName(String name) {
this.name = name; // تغییر ویژگی از طریق متد عمومی
}
public int getAge() {
return age; // دسترسی به ویژگی از طریق متد عمومی
}
public void setAge(int age) {
if (age > 0) { // بررسی شرط قبل از تغییر داده

this.age = age; // تغییر ویژگی از طریق متد عمومی
} else {

System.out.println("Age must be positive.");
}
} } public class Main {
public static void main(String[] args) {
Person person1 = new Person("John", 30);
System.out.println(person1.getName()); // خروجی: John
person1.setName("Doe");
System.out.println(person1.getName()); // خروجی: Doe
person1.setAge(-5); // خروجی: Age must be positive.
} }

در اینجا، همانطور که در مثال Python مشاهده می‌شود، ویژگی‌های name و age در کلاس Person به‌صورت خصوصی (private) تعریف شده‌اند و فقط از طریق متدهای عمومی مانند getName() و setName() قابل دسترسی و تغییر هستند.

کپسوله‌سازی علاوه بر محافظت از داده‌ها، باعث افزایش انعطاف‌پذیری و مقیاس‌پذیری برنامه‌ها می‌شود. این امکان را به برنامه‌نویسان می‌دهد که تغییرات در پیاده‌سازی داخلی یک کلاس را بدون تأثیر بر سایر بخش‌های برنامه انجام دهند. این ویژگی در پروژه‌های بزرگ و تیمی اهمیت ویژه‌ای دارد زیرا به کدها ساختار و نظم بیشتری می‌بخشد.

برای اطلاعات بیشتر، می‌توانید از سایت saeidsafaei.ir و اسلایدهای محمد سعید صفایی بهره‌برداری کنید.

اسلاید آموزشی

برنامه نویسی به زبان C++ بخش اول

برنامه نویسی به زبان C++ بخش اول
مبانی کامپیوتر و برنامه سازی

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

مقالات آموزشی برای آشنایی با اصطلاحات دنیای کامپیوتر

پورت‌هایی که برای انتقال ترافیک مربوط به چندین VLAN بین سوئیچ‌ها استفاده می‌شوند.

پهنای باند مشترک که توسط چندین کاربر یا دستگاه به اشتراک گذاشته می‌شود.

نماد مستطیل در فلوچارت که برای نمایش انجام محاسبات یا فرایندهای مختلف مانند جمع، تفریق و انتساب استفاده می‌شود.

لایه‌ای که مسئول مدیریت نشست‌ها و ارتباطات بین برنامه‌های کاربردی است.

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

پروتکل داده‌های باز (OData) به دسترسی به داده‌ها از طریق API‌ها با استفاده از URL‌ها کمک می‌کند.

دستگاه سخت‌افزاری که بسته‌های داده را از یک دستگاه دریافت کرده و به دستگاه مقصد ارسال می‌کند.

الگوریتم مرتب‌سازی انتخابی بر اساس انتخاب کوچک‌ترین یا بزرگ‌ترین عنصر در هر مرحله و جابه‌جایی آن با مکان مناسب عمل می‌کند.

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

دستورالعملی گام به گام برای حل یک مشکل خاص است. الگوریتم‌ها نقش مهمی در برنامه‌نویسی و حل مسائل کامپیوتری دارند و می‌توانند به صورت دستی یا با استفاده از زبان‌های برنامه‌نویسی مختلف پیاده‌سازی شوند.

شبکه‌های مجازی‌شده به شبکه‌هایی اطلاق می‌شود که از فناوری مجازی‌سازی برای ایجاد و مدیریت منابع شبکه استفاده می‌کنند.

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

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

درمان واقعیت افزوده به استفاده از فناوری‌های AR برای درمان بیماری‌ها و بهبود کیفیت زندگی بیماران گفته می‌شود.

دستیارهای دیجیتال هوشمند به سیستم‌هایی اطلاق می‌شود که از هوش مصنوعی برای ارائه خدمات به کاربران به‌طور شخصی و کارآمد استفاده می‌کنند.

سایه‌های دیجیتال به ردپای دیجیتالی که افراد و دستگاه‌ها در فضای مجازی از خود به جا می‌گذارند گفته می‌شود.

روش‌هایی که دستگاه‌ها در یک شبکه برای دسترسی به رسانه انتقال (مانند کابل یا امواج رادیویی) استفاده می‌کنند.

آدرس‌های IP که برای استفاده در شبکه‌های خصوصی طراحی شده‌اند و در اینترنت کاربرد ندارند.

رسانه‌های فیزیکی از جمله کابل‌ها و فیبر نوری که ارتباطات داده‌ای را در شبکه‌های کامپیوتری انتقال می‌دهند.

سیستم‌های یادگیری تطبیقی به سیستم‌هایی اطلاق می‌شود که به‌طور مداوم از تجربیات جدید برای بهبود عملکرد خود یاد می‌گیرند.

اتصالات با پهنای باند پایین که سرعت انتقال داده کمی دارند.

فاکتوریل یک عدد n با ضرب آن در تمام اعداد صحیح مثبت کوچک‌تر از خودش تعریف می‌شود. این مقادیر به‌طور معمول برای محاسبات ریاضی یا بازگشتی استفاده می‌شوند.

محاسبات هولوگرافیک به استفاده از فناوری‌های هولوگرام برای پردازش و تجزیه و تحلیل داده‌ها در فضای سه‌بعدی اشاره دارد.

پروتکلی که برای ارتباطات بی‌سیم در شبکه‌های LAN استفاده می‌شود.

دریاچه‌های داده مکانی برای ذخیره‌سازی و تجزیه و تحلیل مقادیر عظیم داده‌های ساختاریافته و غیرساختاریافته ایجاد می‌کنند.

اولین و مهم‌ترین سوئیچ در شبکه که مسئول تعیین بهترین مسیرها برای ارسال داده‌ها است.

کانکتور مخصوص کابل‌های Twisted Pair که برای اتصال به شبکه‌های اترنت مورد استفاده قرار می‌گیرد.

فرآیندی که در آن داده‌ها از هر لایه دریافت شده و سرآیندها حذف می‌شود تا داده‌های اصلی به مقصد برسند.

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

لایه‌ای که ارتباطات بین دستگاه‌ها را مدیریت می‌کند و تضمین می‌کند که داده‌ها به درستی به مقصد برسند.

کانکتور مخصوص کابل‌های تلفن که برای کابل‌های UTP CAT-1 استفاده می‌شود.

حافظه موقت کامپیوتر است که به طور موقت داده‌ها و دستورات را ذخیره می‌کند و به پردازنده اجازه می‌دهد تا به سرعت به این اطلاعات دسترسی پیدا کند.

تولید محتوای مبتنی بر هوش مصنوعی به استفاده از الگوریتم‌های یادگیری ماشین برای ایجاد محتواهایی مشابه نوشته‌های انسانی اطلاق می‌شود.

دوقلوهای دیجیتال به مدل‌سازی دقیق سیستم‌های فیزیکی به‌صورت دیجیتال برای شبیه‌سازی، نظارت و پیش‌بینی رفتار آن‌ها گفته می‌شود.

یک نوع NAT که از پورت‌های مختلف برای ترجمه آدرس‌های IP خصوصی به یک آدرس عمومی استفاده می‌کند.

بکشید مشاهده بستن پخش
Saeid Safaei Scroll Top
0%