متین تلخابی
متین تلخابی
خواندن ۲ دقیقه·۴ ماه پیش

سری OOP قسمت پنجم (Encapsulation )

سلا به قسمت پنجم از سری آموزشی OOP خوش امدین
توی این بخش Encapsulation رو مورد بررسی قرار میدیم



معنی Encapsulation می شه پوشش دادن

در اصل این برای محدود کردن دسترسی کاربر به مقادیر داخل کلاس هست (خوب خیلی از مقدار هایی که ما داخل کلاس تعریف می کنیم نباید در دسترس کاربر قرار بگیره یا اینکه کاربر بتونه تغییرش بده مثل اطلاعات مهم برنامه)

مهم ترین دلیل استفاده از Encapsulation همون چیزیه که بالا گفتم مخفی کردن اطلاعات مهم از کاربر که امنیت برنامه رو بالا میبره



خوب سوال پیش میاد چطوری باید از Encapsulation استفاده کنیم
می تونیم از Getter , Setter استفاده کنیم
از این دوتا استفاده می کنیم تا دسترسی به ویژگی هایی یه شیء رو مدیریت کنیم
این نوع متد به ما کمک می کنن یه سری عملیات های مدیریت شده رو هنگام دریافت یا نتظیم یه مقدار از تابع انجام بدیم

اگه بخوایم یکم کد رو بهتر کنیم :


کلاس BankAccount یک حساب بانکی را مدل‌سازی می‌کند. سازنده این کلاس (__init__) شماره حساب و موجودی اولیه را تنظیم می‌کند. متغیر خصوصی __balance برای نگهداری موجودی استفاده می‌شود. متد deposit مبلغی را به حساب واریز می‌کند و اگر مقدار واریزی معتبر باشد، موجودی را افزایش می‌دهد. متد withdraw مبلغی را از حساب برداشت می‌کند، در صورتی که مقدار برداشت معتبر باشد و موجودی کافی باشد. یک getter (@property) و یک setter (@balance.setter) برای دسترسی و تنظیم موجودی (__balance) تعریف شده است که از تغییرات نامعتبر جلوگیری می‌کنند. مثال استفاده از این کلاس شامل ایجاد یک حساب، واریز، برداشت و دسترسی به موجودی از طریق متدها و خصوصیات آن است.

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

کلاس BankAccount:متغیرهای accountNumber و _balance به عنوان ویژگی‌های کلاس تعریف شده‌اند. _balance به عنوان یک متغیر "خصوصی" در نظر گرفته می‌شود (با استفاده از نامگذاری با زیرخط).
متد سازنده (constructor) برای مقداردهی اولیه accountNumber و _balance استفاده می‌شود.
یک getter (get balance) برای دسترسی به مقدار _balance تعریف شده است.
یک setter (set balance) برای تنظیم مقدار _balance تعریف شده است که اطمینان حاصل می‌کند مقدار منفی تنظیم نمی‌شود.
متد deposit برای اضافه کردن وجه به حساب و متد withdraw برای برداشت وجه از حساب است، که هر دو از getter و setter برای دسترسی و تغییر مقدار _balance استفاده می‌کنند.
استفاده از کلاس BankAccount:یک نمونه از BankAccount ایجاد شده و از متدهای deposit، withdraw، و setter برای تنظیم موجودی استفاده می‌شود. همچنین، با استفاده از getter مقدار موجودی نمایش داده می‌شود.



خوب برای این پست کافیه
اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...

ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان ...

https://virgool.io/@KMmatin/%D8%B3%D8%B1%DB%8C-oop-%D9%82%D8%B3%D9%85%D8%AA-%D8%B4%D8%B4%D9%85-inheritance-hkijwkmg18wu


اگه خواستید به کل سری اصول برنامه نویسی شیء گرا یه جا دسترسی داشته باشید:

https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B4%DB%8C%D8%A1-%DA%AF%D8%B1%D8%A7-xse873qxggs4


pythonjavascriptobject oriented programmingEncapsulationبرنامه نویسی شی گرا
برنامه‌نویس Back End مسلط به زبان‌های TailwindCSS، JavaScript، Python و فریم‌ورک Django. مشتاق یادگیری و پیشرفت
شاید از این پست‌ها خوشتان بیاید