بخشی از پاورپوینت

اسلاید 1 :

برنامه نویسی شیءگرا Object Oriented Programming(OOP)

اسلاید 3 :

سرفصل مطالب

برنامهنویسی شیءگرا
Object Oriented Programming (OOP)
کلاس، شیء، ويژگیها و متدها
مفهوم واسط (interface)
مفهوم محصورسازی (Encapsulation)
نوشتن و استفاده از اولین کلاس

اسلاید 4 :

رویکرد شیءگرا

اسلاید 5 :

پیشینه زبانهای برنامهنویسی
زبان ماشین
اسمبلی: نامگذاری برای دستورات عددی زبان ماشین
زبانهای سطح بالا
مانند Fortran, Basic, C
ساختارهایی نزدیکتر به زبان انسان دارند
مثل حلقه، شرط و .
از زبان ماشین و اسمبلی سطحبالاتر هستند
این رویکرد، پیشرفتی بزرگ بود
اما همچنان برنامهنویس باید تحت ساختارهای کامپیوتر فکر کند
حتی با وجود زبانهای سطح بالا
بهتر است برنامهنویس به جای ساختار کامپیوتر، به ساختار مسأله فکر کند

اسلاید 6 :

فضای مسأله و فضای راهحل
برنامهنویسی = ایجاد یک راهحل نرمافزاری برای یک موضوع واقعی
مثال: نرمافزاری برای مدیریت کتابها و اعضا در یک کتابخانه
فضای مسأله (Problem Space)
فضایی که در آن مسأله وجود دارد: مثل کتابخانه
مؤلفههای فضای مسألهی کتابخانه: کتاب، عضو، قفسه، امانت و .
فضای راه حل (Solution Space)
فضایی که راهحل در آن ایجاد میشود: یک برنامه به زبان جاوا برای مدیریت کتابخانه
مؤلفههای فضای راهحل کتابخانه: پروژه، برنامه، متغیر، تابع
برنامهنویسی = تلاش برای انجام نگاشت بین فضای مسأله و فضای راهحل

اسلاید 7 :

رویکرد شیءگرا
به مسأله کتابخانه فکر کنید:
عناصر برنامه شما چه چیزهایی هستند؟
ما درباره توابع و متغیرها فکر میکنیم .
رویکرد شیءگرا (Object Oriented) :
به برنامهنویس اجازه میدهد که عناصر فضای مسأله را نشان دهد
از مفاهیم و اصطلاحات همان مسأله در برنامهای که مینویسد استفاده کند
شیء (Object) :
موجودیتهایی که در فضای مسأله هستند
و در فضای راه حل (برنامهها) هم دیده میشوند
اشیاء در مسأله کتابخانه:
یک کتاب، یک عضو، یک قفسه و .

اسلاید 8 :

برنامهنویسی شیءگرا
Object Oriented Programming
برنامههایی مینویسیم که با زبان فضای مسأله وفق پیدا میکنند
با کمک افزودن انواع جدید داده برای اشیاء همان مسأله
انواع داده محدود به آنچه زبان فراهم کرده، نیست
نوع داده «کتاب» و «قفسه» در کنار انواع ساده (مثل int و char)
وقتی برنامه را میخوانید، کلماتی میبینید که در مسأله معنا دارند
یک کتاب، یک عضو، امانت یک کتاب به یک عضو، و .
این انتزاع، زبان را بسیار انعطافپذیر و قوی میسازد

اسلاید 9 :

زبانهای شیء گرا
Smalltalk
یکی از اولین زبانهای شیءگرای موفق
یکی از زبانهایی که الهامبخش جاوا بوده است
C++
C#
Java

اسلاید 10 :

شیءگرایی در برابر رویکرد رویهای
عناصر برنامهنویسی شیءگر: اشیاء + تبادل پیام بین اشیاء
عناصر برنامهنویسی رویهای: توابع + متغیرها + فراخوانی تابع
تفاوت به نحوه فکر کردن در زمان برنامهنویسی:
فکر کردن درباره اشیاء و رابطه بین اشیاء : روش شیءگرا
فکر کردن درباره حافظه، ساختار کامپیوتر و .. : روش رویهای
تا قبل از این جلسه، عملاً با رویکرد رویهای برنامه مینوشتیم
Procedural Programming and Object Oriented Programming

اسلاید 11 :

مشخصات برنامهنویسی شیءگرا
«آلن کی» برنامهنویسی شیءگرا را در پنج ویژگی اصلی خلاصه میکند:
هرچیز، یک شیء است
یک برنامه مجموعهای از اشیاء است
که با ارسال پیام به هم، به یکدیگر میگویند که چه کاری انجام دهند
هر شیء، حافظه اختصاص یافته به خود را دارد
که از اشیاء دیگر ساخته شده است
(حالت شیء)
هر شیء دارای یک نوع است
همه اشیای از یک نوع خاص میتوانند پیامهای مشابه دریافت کنند
Alan Kay

اسلاید 12 :

توصیف بوچ از شیء
یک شیء، متشکل از وضعیت، رفتار و هویت است
بوچ، «هویت» را به توصیف اشیاء اضافه کرده است
هر شیء، ویژگیهایی دارد
که وضعیت (حالت) شیء را تعیین میکند
مثلاً: یک عضو کتابخانه، ويژگیهایی چون نام، سن و . دارد
هر شیء متدهایی دارد
رفتارهایی از خود نشان میدهد
مثلاً: رفتار «امانت گرفتن کتاب» برای شیء «عضو»
و هر شیء، منحصر به فرد است: هویتی متمایز دارد
حتی اگر دو شیء «وضعیت» یکسان داشته باشند
آدرس منحصر به فرد در حافظه
Grady Booch
State
Behavior
Identity

اسلاید 13 :

مفاهیم برنامهنویسی شیءگرا

اسلاید 14 :

شیء (Object)
موجودیتهایی که در فضای مسأله دیده میشوند
کتابخانه:
کتاب «شاهنامه»، آقای «علی علوی» (عضو)
بازی فوتبال:
علی کریمی، فرهاد مجیدی، ورزشگاه آزادی، توپ
برنامه بانکی:
مریم علوی (مشتری)، شعبه آزادی

اسلاید 15 :

کلاس (Class)
نوع، رده، یا دستهای از اشیاء که «ویژگیها» و «رفتار» مشابه دارند
هر کلاس، نمونههای مختلفی (اشیاء) دارند
کتابخانه: کتاب، عضو، قفسه
بازی فوتبال: بازیکن، تیم، ورزشگاه
برنامه بانکی: مشتری، شعبه، حساب
هر کلاس، رفتار (Behavior) و ويژگیهایی تعريف میکند (Property)
هر شیء از این کلاس دارای این ويژگیها و رفتارهاست
مثال: عضو کتابخانه
ويژگیها: نام، سن، شغل
رفتارها: امانت گرفتن کتاب

اسلاید 16 :

نمایش یک لامپ حبابی
UML Class Diagram

اسلاید 17 :

شخص در یک سیستم آموزشی

اسلاید 18 :

کنترل دسترسی
در طراحی کلاسها: میتوانیم دسترسی به بخشهایی از کلاس را محدود کنیم
بخشهای عمومی (Public) و خصوصی (Private) در کلاس
استفادهکننده از کلاس فقط میتواند از بخشهای عمومی آن استفاده کند
منطقه عمومی واسط کلاس (interface) را نشان میدهد
بخشهای خصوصی، داخل همان کلاس قابل استفاده هستند
ولی توسط کلاسهای دیگر، لزوماً قابل استفاده نیستند
بخشهای خصوصی، از دید استفادهکنندگان پنهان است
پیادهسازی پنهان (implementation hiding)

اسلاید 19 :

محصورسازی (Encapsulation)
محصورسازی: تعریف ویژگیها و رفتارها + پنهانسازی پیادهسازی
لفافبندی یک مفهوم در فضای مسأله در قالب یک کلاس از اشیاء
تعريف کلاسهایی جدید با واسطهای عمومی و پیادهسازیهای پنهان
محصورسازی: تعريف نوع (کلاس) + تعریف واسط کلاس (نحوه استفاده از کلاس)
محصول (کلاس) مثل یک جعبه سیاه (Black Box) خواهد بود
که فقط به شکل خاصی از آن میتوان استفاده کرد
بسياری از محصولات تجاری محصورسازی شدهاند
تلویزیون، تلفن همراه، .

اسلاید 20 :

چرا محصورسازی؟
بهرهبرداری و استفاده سادهتر
استفادهکننده درگیر جزئيات پیادهسازی نمیشود
پیادهسازی باز ممکن است به استفاده اشتباه منجر شود
پنهانسازی پیادهسازی، بروز خطا را کاهش میدهد
این نحوه طراحی، زيباتر است
Implementation
Interface

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید