سلا به قسمت پنجم از سری آموزشی 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 مقدار موجودی نمایش داده میشود.
خوب برای این پست کافیه
اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...
ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان ...
اگه خواستید به کل سری اصول برنامه نویسی شیء گرا یه جا دسترسی داشته باشید: