برنامهنویسی شیءگرا: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
Ali.eblis1 (بحث | مشارکتها) بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۳۷:
</syntaxhighlight>
== وراثت(قوانین مربوط به ارث پذیری یا ارث بری) ==
وراثت یا ارث بری (Inheritance) از مفاهیم اساسی برنامهنویسی شیءگراست. هر شیء یک نمونه از یک [[کلاس]] است و هر کلاس میتواند از کلاس یا کلاسهای دیگری مشتق شده باشد (خواص متدها یا رویدادهای کلاسهای دیگر را به ارث ببرد). در یک مثال ساده میتوان اتومبیلی را در نظر گرفت که برای جلوگیری از بازنویسی خواص عمومی اتومبیل شامل: چهار چرخ، متدهای حرکت چرخ، متد چرخاندن فرمان، فرمان، بدنه، در و غیره، میتوان یک کلاس پایه از اتومبیل ایجاد کرد سپس مثلاً برای اتومبیل سیتروئن مدل C۵ یک کلاس جدید ایجاد کرده که خواص، متدها و رویدادهای عمومی اتومبیل را داشته باشد و فقط برای خواص، متدها و رویدادهای جدید این اتومبیل کد نوشته شود. این ویژگی باعث صرفهجویی در نوشتن کد و تا حدودی تضمین صحت کد موجود میشود. به عنوان مثال اگر کلاس پایه مشکلی داشته باشد فقط کافی است کلاس پایه تغییر داده شود و در تمامی کلاسهایی که از این کلاس پایه ویژگیای ا به ارث بردهاند این تغییر اعمال خواهد شد.
== مخفیسازی(کپسوله سازی کردن) ==
کپسوله سازی، مخفیسازی (Encapsulation)، یا لفافهبندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده میخواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را برمیدارید، استارت میزنید و با فشار آوردن به پدالهای گاز و ترمز و چرخش فرمان و … به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً [[لنت ترمز]] به دیسک چرخ برخورد میکرد و باعث کم شدن سرعت میشد یا شمعها شروع به جرقه زدن در زمانی بخصوصی میکردند. حال فرض کنید که عمل مخفیسازی وجود نداشت و شما مجبور بودید که [[جرقه]] زدن شمعها را کنترل میکردید و به سیستم سوخترسانی در موقع لزوم دستور میدادید که سوخت را بداخل سیلندرها ارسال کند و غیره یا هیچگاه به مقصد نمیرسیدید. یا سالم نمیرسیدید. عمل مخفیسازی باعث میشود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند.
==
چند ریختی، کمیتی است که به یک رابط امکان میدهد تا از عملیات یکسانی در قالب یک کلاس عمومی استفاده کند. عمل خاص کلاس را ذات حقیقی شیء تعیین میکند. مثال سادهای از چند ریختی، فرمان اتومبیل است. عمل فرمان اتومبیل برای تمام اتومبیلها بدون توجه به ساز و کاری که دارند، یکسان است. فرمان برای اتومبیل که بهطور مکانیکی کار میکند یا با نیروی برق یا هر چیز دیگری، عمل یکسانی را انجام میدهد؛ بنابراین، پس از اینکه شما عملکرد فرمان را یادگرفتید، میتوانید فرمان هر اتومبیلی را کنترل کنید. همین هدف در برنامهنویسی نیز اعمال میشود.
بهطور کلی، مفهوم چند ریختی، اغلب با عبارت «یک رابط، چندین روش» بیان میشود. این بدین معنی است که امکان طراحی رابط عمومی برای گروهی از عملیات مرتبط وجود دارد. چند ریختی یا
== انتزاع ==
خط ۵۲:
== مثال کاربردی ==
در اطراف ما اشیاء زیادی وجود دارد و میتوان تمام مفاهیم موجود در طبیعت را با اشیاء
== ارتباط اشیاء ==
مجدداً به مثال ماشین باربری بر میگردیم و این بار، یک ماشین سواری را تعریف میکنیم. ماشین سواری شیئی است که چهار چرخ، یک ترمز، یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین باربری بسیار
* اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' میخواهد، چیزی دریافت نمیکند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها میتواتند ماشین باربری یا ماشین سواری بخواهد.
* کارواش را در نظر میگیریم. این کارواش خودرو را تمیز میکند و دیگر بهطور جزئی عنوان نمیکند که کدام نوع خودرو را تمیز میکند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
خط ۷۲:
* [http://java.sun.com/docs/books/tutorial/java/concepts/index.html مفاهیم برنامهنویسی شیءگرا]
*[https://danup.ir/object-oriented-programming-in-php/ برنامهنویسی شی گرا در php]
*شی گرایی در پایتون
== منابع ==
|