صفحه 1:
شی گرا (00۳ ) ,
ارائه:
صفحه 2:
0
یی رای ترا نگ دار ز ست دادن اون
ویژگی و رفتار ها به چیز های مختلف.
مثال:
ماتو ذهنمون یه تعریف از ماشین (خودرو) داریم: RSS
رنگ, سرعت, قدرت, شرکت سازنده داره و قابلیْت خرکت, ترمز
کردن. تعویض دنده رو داره.
وقتی می گیم [آپراید یک خودرو است.[]تعریف ما از Aviles
ذهنمون ظاهر ميشه و می فهمیم پراید چیه و چه ویژگی یا
هایی داره. اين یعنی شی گرایی.
صفحه 3:
| (به انگلسی: ۳۳۵9۲۵۲۵۲۵9 (Object-Oriented (بهاختصار:
۲۴ ) بک شیوه برنامهنویسی است, که ساختار يا بلوک اصلی
اجزای لن, ش..,:« میباشند. در این شیوه برنامهنویسی, برنامه به
شی كرايش بيدا میکند, به این معنا که دادها و توابعی که بر رو:
اين دادهها عمل میکنند, تا حد امکان در قالبی به نام شیء و در
کنار یکدیگر قرار گرفته, جمعبندی شده و یک واحد (يا یک شیء) را
تشکیل میدهند و نسبت به محیط بیرون خود, کیسج!" میشوند. از
اين طريقء توابع خارج isan ol jl امکان ایجاد تغییر در دادههای
۳ درون شیء را نخواهند داشت.
==
۳
صفحه 4:
4ه« ۱۲
زبان های برنامه
نويسي شی. گوا و عبر
يا نبودنه. بخشی از این ۵سته بندی:
!1 شی گرا: تقریبا تمام زا یی < ی مثل: 0 # وپایتونم
1 غیر شی گرا: زبان های قدیمی مثل ) و قدیمی راز اون
صفحه 5:
تعسو 3
1 هدف از برنامه نوييسى شىءكرا
an ی که در این با مارم شون این لت که اسه طشن
شیءگرا چیست؟ نخستین زبان برنامه نویسی شیءگرا logos oS)
اقا بر إن ات 50015 بوه است )این آشیا را معرفی کرو
آشیا مجموعهای از اطلاعات هستند که به عنوان واحدی منفرد
آنها رفتار میشود:
این یم را با ارات ای را نوضيح 122992 ]0
نخست در مورد کلاسها صحبت میکنيم. کلاسها ثوعی از اشیای
7 مقدماتی هستند. آنها فهرستی از خصوصیات دارند که وقتی تعریف
میشوند, تبدیل به یک شیء میگردند.
صفحه 6:
7 قثال 97ت بازى تنتطرنج اشارة مىكنيم. ذر بازّق شطرتخ مئتواتيم كلانيج وه
«مهره» (۳۱6۵6) داشته باشیم. درون این کلاس مهره, فهرستى از خصوصيات رابه صورت
زیر داریم:
رنگ
ارتفاع
شکل
حرکتهای مجاز
هر شیثی صرفاً یک وهله خاص از جبزی که بء آن کلاس تعلی دارق را تعریف میکند. بنابراین
مونوانيم شيتى به نام وزيز شفيد a باس gd شیاه مر تو اند تفار يفت براي هر
خصوصیت خود داشته باشد (رنگ: سفید, ارتفاع: بلندم,شکل: استوانهای دارای تاج جر"
به تعداد نامحدود در هر جهت) این شیء میتواند متدها یا تابعهاییتیداشته باشد.
صفحه 7:
تیه مفهوم تجرید در برنامه نویسی
شیءگرا
7 اين که قصد دارید از چیزی استفاده کنید, دلیل نمیشود که طرز کار آن
را میدانید. برای مثال یک دستگاه اسپرسو کاملا پیچیده است., اما شما
لازم نیست طرز کار آن را بدانید. شما کافی است بدانید که وقتی دکمه
روشن دستگاه را میزنید. اسپرسو دریافت خواهید کرد.
1 همین مسئله در مورد برنامه نویسی شیءگرا نیز صدق میکند. در/مثال
بازی شطرنح میتوانیم یک متد ()۲۱۵۷6 داشته باشیم. اين متد
است نیازمند مقادیر بالایی از دادهها و متدهای دیگر باشد.
ممکن است نیازمند متغیرهایی به صورت موقعیت اولیه و نهایی مهره
باشد. علاوه بر اين موارد ممکن است به یک متد دیگر برای زمانی که
مهرهای یک مهره دیگر را میزند نیاز داشته باش؛
jl bel 1 ثیست که اینها را بدانید و همه آنچه که باید بدانید این است که
زمانی که از مهرهای میخواهیم حرکت کند, مهره حرکت مىكند. اين
مفهوم,تچرید,لست.
صفحه 8:
مقهوم کپسولهسازی در برنامه نویسی
شیءگرا
کپسولهسازی یکی از روشهایی است که برنامه نویسی شیءگرا برای ساخت تجرید
الوتقاده یکد فر شيءء مجموعهاء ار دادوها الث كه يا لن له عنوان يى وآخر مكرا
برخورد مىشود. درون اين اشيا نيز دادهها به صورت متغير و متد قرار دارند.
متغيرهاى درون شىء به طور كلى مجزا باقى مىمانند و اين به آن معنى است كه اشيا
و متدها نمیتوانند به همدیگر دسترسی داشته باشند. اشیا تنها از طریق استفاده از
متدهایشان تأثیر میپذیرند.
ی شی وزیر مینواند شامل چند بخش از اطلاعات باشد. رای وتو عي وان
متغیری به نام «موقعیت» داشته باشد که مکان لن را روی صفحه تعیین میکند. ای
متغیر برای استفاده از متد (۱۵۷6 لازم است. و همچنین یک متغیر رنگ نیز دارد.
با اعلان خصوصی متغیر موقعیت و اعلان عمومی متد ()۲۱۵۷6 برنامهنویس میتواند از
تثیریذیری متفیرهای حرکت ازساشیای دیگر جلوگر ی مهوت ير اكر به
صورت eae ای OD
متکقا ۳9 و کار را بهانها ys anil ann این عوره چتن کارت مار تست چون
© مهروهاة لطر ار ۱۳۱۱۳
صفحه 9:
١ هاش
Pashia
methods
variables -— Class
صفحه 10:
= >
8 شفاهیم مورد استفاده در مبحث شَیَ
1 در مبحث شی گرایی ما دو تا مفهوم داریم: کلاس
(object) su 9 (class)
9
صفحه 11:
(=
ساد
كلاس ( 1355© )
ل کلاس به عبارتی همون تعریف ما (ویژگی ها و رفتار ها) از یه چیزه.
مثل تعریفی که از خودرو داشتیم.
| كلاس ها به طور کلی ۲ موضوع رو مشخص می کنن:
1 رفتار: مثل ترمز کردن در مثالی که گفتم
! ویژگی: مثل سرعت در همین مثال که گفتم
صفحه 12:
Ww
صفحه 13:
( (object ssw
Ll شیء به اون چیزی می گن که که ما کلاس رو به اون نسبت می
دیم. مثلا ما تو همین مثال مشخصات خودرو رو به پراید نسبت
دادیم. اینجا پراید همون شىء هست. تو برنامه نويسى به اين عمل
(نسبت دادن پراید به خودرو) می گن ۱05۲2066 سازی و می تونیم
بگیم پراید یک ۱۳5۵۳6 از کلاس خودرو هست:
صفحه 14:
objects
class
صفحه 15:
مفهوم چندریختی در برنامه نویسی
2 ء ك5ر!
جندريختى نتيجه ورائت است. در كامل جندريختى نيازمند كسب حداقلى از دانش برنامه
تیش است واز ازن رو در لين بخش تنها به صورت مقدماتي أن را معرقى من كنيع بف طون
خلاصه جندريخني به برنامهنويس امكان مىدهد كه متدهايى با تام يكسان را بر روى اشياق
مختلف استقاده كند.
براى نمونه فرض كنيد در كلاس «مهره»-ها كه در بخشهاى قبلى تعريف كرديم ,يك متد
06 داشتیم که هر مهره زا در همه جهات به اندازه یک واحد حرکت میداد. اب متد
برای بهره شاء مفيد أست؛ اما فقط براف أين مهره به درد ميخورد و در وورد مهرة
ديكر به كار نمىآيد. برای حل لین مشکل میتوانيم متد ()©/#01جديدى"در زي كلاس «مهر/
رخ» تعريف کنیم که به صورت عرکت به عقاو در جيت هاى جلويضقي: جب 0
راست باشد.
در این حالت زمانی که برنامهنویس مند (/۳0۷6 را فراخوللل 3١ کل نوع"مهزه را نیز به
عنوان ورودی (آرگومان) متد ارشال میکند تا برنامه,بداند که وقیعا چه مهرهاق را باید حرکت
دهد. بدین ترتیب مقدار زمان زیادی صرفهجویی میشود. اين زمان بدون وجود چندریختی باید
صقان ول شند که تشخیص,دهید چه نوع حرکتی بايد انجام دهيد.
صفحه 16:
صفحه 17:
el jul
ريه ان مسا اش كه شار ,وديس بى نادم راكه عيان Men
وراث مشترى است, از ييش تعريف كنيم. اين توانايى منجر به
داشتن نگاه مشابه به موجودیتهای مشابه میگردد.
صفحه 18:
منال کاربردی
در اطراف ما اشیاء زیادی وجود دارد و میتوان تمام مفاهیم موجود در طبیعت را با اشیاء
تقلیل داد. مثلاً یک ماشین باربری. این ماشین یک سری خصوصیات دارد: چهار چرخ. یک
پدال ترمز, یک پدال گاز, یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن و... اين
ماشین در صورتی که ما پدال گاز آن را فشار دهیم. حرکت میکند. در صورتی که فرمان
ارم ی رن بر ان ی ء تاو زاییک. سری توص ان بر
سری رفتار مشخص هم به ما نشان میدهد؛ ولی فقط این یک ماشین نیست که این کار
#افانجام میدهد تجامی ماشینها این کارها را انجام میدهند. پس میتوانیه ین خاشسش را
"تعریف" کنیم و بگوییم: ماشین باربری وسیلهای است که چهاز چرخ,.یک گاز, یک ترمز,
فرمان و یک محل برای حمل بار دارد و اگر پدال گاز آن فشار داده شود حرکت میکنه
این تعزیف این ماشین است ولی خود آن نیست. هر زمانی چنینقالّینی بخواهیم به
کارخانه تولید آن میرویم و از فروشندگان میخواهیم تا با توجه به این تعریف یک ماشین
به ما بدهند. مفاهیم فوق در زبانهای برنامهنوسی, شیءگزا گنجانده شدهاند. در اين
آزبانها, اشیاء بیاوی از پیش وجوه وازند که برنامه ویسان کی توا از آنها استفادم,كبيد.
صفحه 19:
ارتباط اشیاء
مجددا به مثال ماشین باربری بر میگردیم و این بار, یک ماشین سواری
را تعریف میکنيم. ماشین سواری شیئی است که چهار چرخ. یک ترمز.
یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین
باربری بسیار شبیهاست. به عبارت دیگر ما به یک تعریف جدید
میرسیم: خودرو. خودرو وسیلهای است که چهار چرخ. یک ترمز, یک
يدال كاز دارد. يس از اين ae ar تعریف ماشین باربری و ماشین Sylow
خیلی سادهتر میشود. ماشین باربری, خودرویی التتت که محلی برا
قرار دادن بار داشته باشد و ماشین «Sylow خودروپی است که صندوق
عقب داشته باشد.
اگر کسی به درب کارخانه مراجعه کند و بگوید که «خودرو» میخواهد,
چیزی دریافت نمیکند. خودرو یک تعریف انتزاعی است. برای تعریف
خودرو شیء وجود ندارد؛ پس مشتری تنها میتواند خودرو باربری یا
خودرو سواری بخواهد.
صفحه 20:
۱ چا
1 کارواش را در نظر میگیریم. این کارواش خودرو را تمیز میکند و
دیگر بهطور جزتی عنوان نمیکند که کدام نوع خودرو را تمیز میکند.
به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
1 وقتی شخصی قصد اجاره خودرویی دارد, و میخواهد جنسی را حمل
کند در هنگام تماس با متصدی کرایه ماشین میگوید: «اگر خودرو
lee te ee eee ees Ieee nee دا
شدن را دارد میگوید: «برای من یک ماشین سواری بفرستید.»
'! در زبانهای برنامهنویسی شیءگرا نیز اشیاء مختلفی وجود دازند
تعریف آنها تکمیلکننده یکدیگراست, به عبازوهووچگصاضیا از پکدیگم/
Tl یکدی Soe se, | een
آنها نمونه شیئی ساخت و تنها تعریف هستند: به اين تعاريف
9 6 گفته میشود.
صفحه 21:
1 اعمال شیوههای مدیریتی با محوریت اشیاء در مطالعه, طراحی,
ایجاد. و اجراء پروژههای مهندسی نرمافزار و مهندسی دانش.
صفحه 22:
پایان
.6 شما ”
با تشكر از مسن توجه