برنامهنویسی شیءگرا: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB |
|||
خط ۵:
'''برنامهنویسی شیگرا''' (به [[زبان انگلیسی|انگلیسی]] ''Object-Oriented Programming'' مخفف:OOP) یک شیوه برنامهنویسی است که ساختار یا بلوک اصلی اجزای آن، [[شی (علوم رایانه)|شیها]] میباشند. در واقع در این شیوه برنامهنویسی، برنامه به شی گرایش پیدا میکند. به این معنا که [[دادهها]] و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، [[کپسولهسازی (علم رایانه)|کپسوله]] میشوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. بهطور مثال [[حساب بانکی]] شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را میدهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد.<ref>http://de.wikipedia.org/wiki/Objektorientierte_Programmierung</ref> از دیگر ویژگیهای برنامهنویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایمهای برنامهنویسی است.
فلسفهای که منجر به شکلگیری ی زبانهای شی گرا شد، عبارت بود از این واقعیت که نحوهٔ عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوهای شی گراست، از همین روی میبایستی زبانی تعریف میشد که همین شیوه را مبنای کار خود قرار داده و بازتولید میکرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در [[زبانهای برنامهنویسی]] نیز میبایستی این اصول کلی برقرار میشد.<ref>Christian Ullenboom, Java ist auch eine Insel, 10. Auflage, ISBN 3-8362-1802-X</ref> تا به این شکل، برنامهنویس بتواند با بهرهگیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شیهای مختلفی را تعریف نموده، این شیها را در ارتباط با یکدیگر قرار داده و از شیهای پویای تولید شده برای [[حل مسئله]] ی پیش روی استفاده نماید. امروزه اکثر [[زبانهای دستوری]] برنامهنویسی از فنون شیگرایی پشتیبانی میکنند.
مفاهیم عمده
خط ۳۴:
== مخفیسازی ==
مقالهٔ اصلی: [[
کپسوله سازی، مخفیسازی (Encapsulation)، یا لفافهبندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده میخواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را برمیدارید، استارت میزنید و با فشار آوردن به پدالهای گاز و ترمز و چرخش فرمان و … به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً [[لنت ترمز]] به دیسک چرخ برخورد میکرد و باعث کم شدن سرعت میشد یا شمعها شروع به جرقه زدن در زمانی بخصوصی میکردند. حال فرض کنید که عمل
عمل
== چندشکلی ==
|