قالب وردپرس



  •  ثبت نام |     |



ارسال موضوع جدید پاسخ به موضوع
 صفحه 1 از 1  [ 1 پست ] 

جمعه مرداد 4, 92 12:50 pm

آفلاین
مدیر سایت
آواتار کاربر
تاریخ عضویت: چهارشنبه فروردین 6, 92 1:04 am
پست: 1356
{ GIVEN }: { THANKS }
{ RECEIVED }: { THANKS }

در این قسمت با مفاهیم شی گرایی آشنا می شوید.

برنامه نویسی شی گرا چیست ؟
از آنجایی که اساس تکوین c++   برنامه نویسی شی گرا است . پس مهم است که تعریف دقیقی را از برنامه نویسی شی گرا ارائه دهیم . شی گرا از بهترین مفاهیم برنامه سازی ساخت یافته بوجود آمده است و با چندین مفهوم قوی ترکیب شده که امکان سازماندهی برمانه ها به طور کارامد را فراهم می کند . به طور کلی هنگامی که در حالتی شی گرا نیز برنامه می نویسید مساله را به بخش های تشکیل دهنده آن تجزیه می کنید . هر مولفه ای یک شی خود ظرف می شود . که شامل دستور العملهای خودش و داده های مرتبط به آن شی است . از طریق این عملیات پیچیدگی کاهش یافته و می توان برنامه های بزرگ را مدیریت کرد . همه زبان های برنامه نویسی شی گرا در سه چیز مشترک هستند : کپسوله سازی . چند ریختی و وراثت . که در زیر اشاره مختصری به هر یک از آنها می کنیم .
کپسوله سازی
همانطوری که میدانید تمام برنامه ها از دو عنصور اصلی تشکیل می شوند : عبارت برنامه ( کد ) و داده ها . کد بخشی از برنامه است که عملیات را اجرا می کند و داده ها اطلاعاتی است که توسط این عملیات تحت تاثیر قرارگرفته . کپسوله سازی یک مکانیزم برنامه نویسی است که کد و داده را با هم در یک جا قرار داده و هر دو را از استفاده نادرست وتداخل خارجی ایمن نگه می دارد.
در یک زبان شی گرا . کد و داده ممکن است باهم در چنین روشی محدود شوند که یک جعبه سیاه خود ظرف را ایجاد می کند . درون جعبه تمام داده های مورد نیلز و کد است . هنگامی که در این روش کر و داده ها با هم پیوند برقرار می کنند . یک شی به وجود می آید . به عبارت دیگر . یک شی ابزاری است که از کپسوله سازی پشتیبانی می کند .
درون یک شی ( کد و داده ها ) یا هر دو ممکن است برای آن شی محلی ( خصوصی /  private ) یا عمومی ( public ) باشند . کد یا داده های محلی فقط توسط بخش دیگری از شی شناخته شده و قابل دست یابی هستند .
به همین دلیل کد یا داده محلی برای قطعه ای از برنامه که خاج از شی است . قابل دسترس نمی باشد . هنگامی که کد یا داده ها عمومی هستند بخشهای دیگری از برنامه ممکن است به آنها دسترسی داشته باشند  حتی اگر درون شی تعریف شده باشند بخش های عمومی یک شی برای ارائه یک ارتباط کنترل شده با عناصر محلی شی مورد استفاده قرار می گیرند .
چند ریختی
چند ریختی کمیتی است که به یک رابط امکان می دهد تا برای یک کلاس عمومی از عملیات مورد استفاده قرار گیرد . عمل خاص توسط ذات حقیقی شی تعیین می شود . یک مثال ساده از چند ریختی در فرمان اتومبیل است . فرمان اتومبیل برای تمام اتومبیل ها بدون توجه به مکانیزمی که مورد استفاده قرار می دهند یکسان است . فرممان برای اتومبیلی که به صورت دستی کار میکند یا با نیروی برق یا هر چیز دیگری عمل یکسانی را انجام میدهد . بنابراین بعد از اینکه شما چگونگی  عمل کردن فرمان را یاد گرفتید میتوانید هر نوع اتومبیلی را برانید . همین هدف نیز می تواند در برنامه نویسی اعمال شود . به عنوان مثال یک پشته ( لیستی که در آن اولین ورودی آخرین خروجی است مثل تعدادی سکه که روی هم قرار می گیرند ) را در نظر بگیرید. ممکن است برنامهای داشته باشید که نیاز به سه نوع مختلف پشته داشته باشد یک پشته برای مقادیر اعداد صحیح . یک پشته برای اعداد اعشاری و یک پشته برای کاراکترها مورد استفاده قرار گیرد . در این صورت الگوریتمی که هر سه پشته را پیاده می کند یکسان است حتی اگر داده هایی که در آنها ذخیره می شود متفاوت باشند . در یک زبان غیر شی گرا نیاز خواهید داشت تا سه نوع مختلف از روال ها ی پشته را ایجاد کرده . به هر کدام نام متفاوتی قرار داده و برای هر کدام از روابط خاص خودش استفاده کنید . به دلیل وجود چند ریختی در C++ می توانید یک مجموعه روال عمومی از پشته ایجاد کرده و آن را برای هر سه نوع به کار ببرید . با این روش بعد از اینکه استفاده از یک پشته را یاد گرفتید می توانید همه انواع آن را به کار ببرید .
به طور کلی مفهوم چند ریختی اغلب توسط عبارت ” یک رابط. چندین روش ” بیان می شود . این بدین معنی است که امکان طراحی یک رابط عمومی برای گروهی از عملیات مرتبط وجود دارد .
چند ریختی با اعمال رابط یکسانی که برای تعیین یک کلاس عمومی مورد استفاده قرار می گیرد . به کاهش پیچیدگی کمک می کند . این است وظیفه کامپایلر تا فعالیت خاصی ( مثل متد ) را برای اعمال روی آن انتخاب کند . شما به عنوان برنامه نویس نیاز ندارید تا این انتخاب را انجام دهید شما فقط نیاز دارید رابط عمومی را به خاطر سپرده و استفاده کنید .
زبان های برنامه نویسی شی گرای اولیه چون به صورت مفسری بودند از چند ریختی در زمان اجرا پشتیبانی می کردند . ولی چون C++ کامپایلری است پس هم در زمان اجرا و هم زمان کامپایل از چند ریختی پشتیبانی می کند.
وراثت
وراثت . عملی است که یک شی می تواند مشخصه های شی دیگری را بدست آورد . به همین دلیل از مفهوم دسته بندی سلسله مراتبی پشتیبانی می کند . اگر در رابطه با وراثت بیشتر فکر کنید اطلاعات بیشتری راجع به دسته بندی سلسله مراتبی ( از بالا به پایین ) بدست خواهید آورد . به عنوان مثال سیب قرمز بخشی از دسته بندی سیب که آن هم بخشی از کلاس میوه هاست که آن هم در کلاس بزرگتری به نام غذا قرار دارد . کلاس غذا دارای مشخصات اصلی ( خوراکی . پروتئین و غیره ) است که به طور منطقی به زیر کلاس های غذا اعمال می شود . علاوی بر این مشخصات کلاس میوه دارای مشخصه های ( آبدار. شیرین و غیره ) است که آن را از سایر غذا ها متمایز می کند . کلاس سیب نیز مشخصه های خاصی را برای یک سیب تعریف می کند که عبارتند از : رسیدن روی درخت و غیره . یک سیب قرمز تمام خصوصیات کلاسهای بالاتر را به ارث می برد و فقط مشخصه هایی که منحصر به فرد هستند را تعریف خواهیم کرد .
بدون استفاده از وراثت هرشی به طور مجزا بایستی تمام مشخصه های خودش
را تعریف کند .با استفاده از وراثت شی فقط نیاز به تعریف مشخصه هایی دارد که در داخل آن کلاس منحصر به فرد هستند . این سبب می شود که صفات عمومی را از پدرشان به ارث ببرند .
بنابراین . مکانیزم وراثت به یک شی امکان میدهد تا نمونه خاصا از یک حالت عمومی تر باشد .
C++ برنامه نویسی شی گرا را پیاده سازی می کند .
چندین ویژگی در C++ وجود دارد که از کپسوله سازی . چند ریختی و وراثت پشتیبانی می کنند. به خاطر داشته باشید که می توانید از C++ برای نوشتن هر نوع برنامه ای و با استفاده از هر نوع روشی استفاده کنید . این مطلب کهC++ از OOP پشتیبانی می کند بدین معنی نیست که فقط می توانید برنامه های شی گرا بنویسید . همانند پیشینه خود ( یعنیc ) یکی از قویترین مزایای C++ قابلیت انعطاف آن است .
لینک دانلود قسمت اول
لینک دانلود قسمت دوم

رمز و منبع: http://www.daneshjooyar.com

_________________


بالا بالا
  پروفایل
  پاسخ با نقل قول 
نمایش پست ها از آخر به اول:  مرتب سازی بر اساس  
ارسال موضوع جدید پاسخ به موضوع
 صفحه 1 از 1  [ 1 پست ] 

همه زمان ها بر اساس UTC + 3:30 ساعت [ DST ] تنظیم شده اند


چه کسی آنلاین است

کاربران حاضر در این انجمن : کاربر عضو شده ای موجود نیست و 2 مهمان


در این انجمن نمی توانید موضوعات جدیدی ارسال کنید
در این انجمن نمی توانید به موضوعات پاسخ دهید
در این انجمن نمی توانید پست خود را ویرایش کنید
در این انجمن نمی توانید پست های خود را حذف کنید
در این انجمن نمی توانید پیوست ارسال کنید


جستجو برای:
پرش به:  

Powered By www.Cmpclub.ir
کلوب کشوری کامپیوتر
2016

قالب وردپرس