کامپیوتر و IT و اینترنتعلوم مهندسی

درس مهندسی نرم‌افزار 1

صفحه 1:
) yy ۳ ۱ ) ۳ i i \ KX

صفحه 2:
خب ۱7 فهرست : #تعریف کلاس #نحوه تعريف كلاس ها در ‎#C‏ ‏#مثالى از كلاس ها #شى كرايى در زبان #00

صفحه 3:
‎a a 00 nee on‏ اسك ا ا م ‏كرد أورى شد للد ‎ene‏ 7 ل أمان باشند در واقع بيك كلاس يكسرى اطلاعات مثال اطلا ‏جمع شوند مى توانئد يك كلاس را تشكيل دهنده ‎

صفحه 4:
نحوه تعریف کلاس ها در ‎#C‏ 1 RW FINO] ACS | OR Pee Cary seer Fer Cy ar Dee SO nrY EU Cryo Fas CORR. xl POC Os FSPIET Fe ‏آشنا باشيد ادر غير لين صورت تخواهید توانست از ویدگی های این زبان به درستی‎ & hb ‏استفاده نمایید. برای تعریف یک کلاس در 2)# می توانید این عمل‎ 1۱۳ ‏بر‎ NUE CPEs Ie cy ‏ل‎ (oe MIRtRC ary pence Tin npr IN Ue Peas ere Or] Pere Ese 111 ©) [= bes rgemranry Co (6 IP teh cane PIC 5 عمل کلاس مورد نظر شما ایجاد خواهد شد. شکل کلی تعریف کلاس ها در #6 به

صفحه 5:
نحوه تعریف کلاس ها در 0+: Access Modifier class ClassName ١ you class body)/ ۱

صفحه 6:
ايى كه به صورت كج 1 Pe reece ‏ل ا الا ا ا‎ = iuenc cles ا ل 70 ا لت ا ا ا ا 1 براكله مى دانيد در #00 كلاس ها در به نام فضای نامی Pe ‏ل‎ 2 TT 8-19 91-101)) ee ee ee Ne Sea ene ME os ‏كه در‎ ey ge FEES ‏ا‎ rome) Per Sey eects ecco ies Bar real Ie kr esr sey aie Paps Pea Parana ce]

صفحه 7:
نحوه تعریف کلاس ها در ‎#C‏ namespace name 1 Access Modifier class ClassName 1] you class body// { 7

صفحه 8:
اا ‎POH ear Yaeyesars Her ee pcare‏ دیگری (توسط دستور 1151130) می توانید متفیری از نوع کلاس خود تعریف نموده و از آن استفاده ۲-اگر مشخصه دسترسی کلاس شما 10171۷216 باشد فقط در همان فایل و فضای نام می توانید از کلاس خود استفاده نمایی. Rea ere ‏ااا‎ ee rere en eee ee ۴- پس از نوشتن نام کلاس خود و توصیف کننده دسترسی می توانید بدنه کلاس خود را بین دو علامت ۹(

صفحه 9:
نحوه تعریف کلاس ها در ‎#C‏ برای تعریف یک متغیر در کلاس باید به همان صورت عادی عمل نمایید. تنها نكته اى كه بايد به آن توجه نمایید این است که: FR peers RY eye ere) st public / private / protected |.

صفحه 10:
بايد با استفاده از دستور | 511 نام فضاى نامى خود را در بالاى برنامه اضافه ليد لين دستور ا لت تت ا ل ‎Fe Reel‏ فایل خود مثلا کد فرم برنامه خود نگاهی بیندازید این دستورات را پیدا خواهید ‎roe‏ 0 0 /

صفحه 11:
نحوه تعریف کلاس ها در 0+: ۱۵0 using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; _ using System.Windows.Forms;

صفحه 12:
Rive] Page Fes omer ee eal ayaa ‏ات ا‎ Ue) ep aPS Sl Oe) PSPC erent ‏ال ا ل ا‎ IeConny ‏نام ذكر شده در جلوى.آن مى خواهيم استفاده نماييم.‎

صفحه 13:
نحوه تعریف کلاس ها در ‎#C‏ پس از اضافه کردن فضای نامتان می توانید متغیری از نوع کلاس مورد نظر تعریف نموده و از آن استفاده نمایید برای انجام لین عمل باید به صورت زیر عمل نما YourClassName InstanceOhject=new ;(0ClassName

صفحه 14:
نحوه تعریف کلاس ها در ‎#C‏ چرا کلاس ها به اين گونه تعریف می شوند و کاربرد کلمه کلیدی 1161۷ چیست ر از نوع كلاس تعريف مى كنيد لين متغير يك شى نيست بلكه در واقع است كه مى تولند به ّن شى مشاره كند و شى ولقعى با استفاده از كلمه كليدى 126107 1 ‏م ل ل ا‎ DeR Ca 0 0 ‏ا ا ا‎ peer شده ذخیره گردد تعریف تمامی اشیا در #62 بلید به لين صورت انجام ۱ تلبع سازنده كلاس را فراخولنى كن. تليع سازئده تابعى است كه د تلبع هم نام با نام کلاس بوده و هیچ نوع مقدار (س خود تعریف ننمایید #62 سازنده ؛ پیش فره

صفحه 15:
2 ۰ 8 مثالی از کلاس ها يك كلاس ساده به نام 261501312340 این کلاس شامل اطلاعات یک انسان از قبیل قد. رنگ چشم Rone asec) 1 Tetra Ney Peete TT) sprivate string LastName ‏مط 0014 عتاطنام()‎ 7 Console.Write("Name="_Name " Last Name=" LastName "Age=" Age.ToString())

صفحه 16:
شی گرایی در زبان #): شع كرام د ‎C#‏ حند پایه استواراست که به قرل زرند: ‎Inherita Encapsu‏ ‎nce lation‏ ‎Polymor Abstract‏ ‎phism ion‏

صفحه 17:
pron Role 3 ic ‏ی‎ ‎۱ 7 تی دارد که مختص خودش هستند و در انو ‎enero‏ ۱ اين دوجرخه مى تولند ويزكيها و متدهاى مشترك را از كلاسر ی ول لدب وت دید و

صفحه 18:
همانطور كه از اسمش بيداست» مه قرار دادن بياده سازى در يك كيسول اشاره عى كنده به ا 0 خاصی را انجام می دهد. وقتی یک کپسول می خورید نمی دانید که در بت 0 Fed ee oer CSS eC ‏ا ا ا‎ menor ‏می دهند. اگر می خواهیم کدهای ما نیز لین مورد را رعلیت کنند‎ |۱9 PoPeCs Fea Ox anne eee Fr eoes Le] Para Pcs VO ‏و 211116 استفاده مي‎ protected private Modifier

صفحه 19:
Polymorphism ذم این دقیقا همان چیزی است که به آن يا ود

صفحه 20:
شود که پیاده سازی متدها در آن انجام تمی شود تعريف يك كلاس مجرد از كلمه كليدى 21511861 استفاده مي ‎Pes pyre‏ رت ا ‎Ly SOT‏ Paes KIN er RT CCCI RUC IG ‏ا‎ 2 18315 81019 باشد. اگر متد نامجردی در یک کلاس محرد تعریف کردید. حتما بلید ن را بناده سازی کی ونم توت ده ساری آن وابه علاسهای مشتی شده بس ارب

صفحه 21:
Ree ge caer Fears esa ‏ری ار سس‎ pO EL ‏در ترا‎ Bee reo Dene Compe yr Conntcom EW bale l-> <comPnERIRUEyY رو ان وا ی ‎as‏ ندارند (امری است ‎eee Recon ce PY‏ و ل ا ا 7 00 ‎Le 0‏ ن 000 ‎le‏ از قبيل ناسازكارنى با ديكر ‎Cee 0‏ وجود ند ‎

صفحه 22:

به نام خدا تمرین شماره 1درس مهندسی نرم افزار1 استاد :آقای اردالن الیاسی تهیه کننده :اسمعیل پورحیدر شماره دانشجویی 860441831 : فهرست : ‏تعریف کالس ‏نحوه تعریف کالس ها در #C ‏مثالی از کالس ها ‏شی گرایی در زبان #C تعریف کالس: کالس چیست و به چه چیزی اطالق می شود؟ پاس9خ ای9ن س9وال در ص9ورت آ9ن نهفت9ه اس9ت .کلم9ه کالس( )Classدر زبان انگلیس9ی به معنای دس9ته اس9ت .در واق9ع کالس دس9ته ای اس9ت از ویژگ9ی ه9ا و خص9وصیات درباره یک موجودیت معین که می تواند در دنیای واقعی وجود داشته باشد و یا خیر .که در یک مکان گرد آوری شده ان9د و ب9ه ص9ورت ی9ک دس9ته در آمده ان9د ت9ا از به9م ریختگ9ی و درهم شدن در امان باشن9د در واق9ع ی9ک کالس یکس9ری اطالعات و ویژگ9ی ه9ا اس9ت درباره چیزی .به عنوان مثال اطالعات شخص9ی ی9ک فرد اع9م از نام ،نام خانوادگ9ی ،شماره تلف9ن و ....اگ9ر در مکانی جمع شوند می توانند یک کالس را تشکیل دهند. بازگشت به فهرست نحوه تعریف کالس ها در :#C ه9ر چیزی ک9ه شم9ا در #Cپیاده س9ازی م9ی نمایی9د بای9د ب9ه ص9ورت کالس ها باشد بنابراین برای برنام9ه نویس9ی ب9ا #Cبای9د کام ً ال ب9ا ریزه کاری های تعری9ف و پیاده س9ازی کالس ها آشن9ا باشی9د در غی9ر ای9ن ص9ورت نخواهی9د توانس9ت از ویژگ9ی های ای9ن زبان ب9ه درستی اس9تفاده نمایید .برای تعری9ف ی9ک کالس در #Cم9ی توانی9د ای9ن عم9ل را در ی9ک فای9ل یا کالس انجام دهید .ای9ن فای9ل ه9ا دارای پسوند CS.هستند .برای ایجاد چنین فای9ل هایی می توانید پس از ایجاد پروژه جدید در Visual Studioروی نام پروژه خود راست کلی9ک کرده و س9پس گزین9ه Addو س9پس Classرا انتخاب نمایی9د پ9س از انجام این عم9ل کالس مورد نظ9ر شم9ا ایجاد خواه9د شد .شک9ل کل9ی تعری9ف کالس ه9ا در #Cبه صورت زیر است: :#C نحوه تعریف کالس ها در Access Modifier class ClassName { you class body// } نحوه تعریف کالس ها در :#C قس9مت های9ی ک9ه ب9ه ص9ورت ک9ج ( )Italicمشخ9ص شده ان9د ب9ا نام های دلخواه شما جایگزی9ن خواهن9د شد .بخ9ش اول ک9ه Access Modifierاس9ت مشخ9ص کننده این اس9ت ک9ه آی9ا کالس های شم9ا در خارج از ای9ن فای9ل ه9م م9ی توانن9د مورد استفاده قرار بگیرین9د ی9ا خیر .ای9ن قس9مت م9ی توان9د شام9ل دو گزین9ه publicیا privateباشد. همان طور ک9ه م9ی دانی9د در #Cکالس ه9ا در بخ9ش های9ی ب9ه نام فضای نامی ( )namespaceدس9ته بندی شده ان9د ت9ا دو کالس ب9ه ی9ک نام باعث ایجاد اختالل در برنام9ه نشود تمام9ی کالس های9ی ک9ه شم9ا در ی9ک فای9ل کالس تعری9ف م9ی کنی9د ه9م بخشی اس9ت از ی9ک فضای نام اگ9ر ب9ه باالی فای9ل کالس خود نگاه9ی بیندازی9د م9ی بینی9د که در ابتدای کد شما خطی مانند زیر وجود دارد البته به جای nameیک نام قرار دارد: :#C نحوه تعریف کالس ها در namespace name { Access Modifier class ClassName { you class body// } } نحوه تعریف کالس ها در :#C نکات مهم: -1اگر کالس شما دارای مشخصه دسترسی publicباشد با اضافه کردن فضای 9نام خود به فایل دیگری (توسط دستور ) usingمی توانید متغیری از نوع کالس خود تعریف نموده و از آن استفاده کنید. -2اگر مشخصه دسترسی کالس شما privateباشد فقط در همان فایل و فضای نام می توانید از کالس خود استفاده نمایید. - 3اگر توصیف کننده دسترسی را ننویسید به طور پیش فرض privateدر نظر گرفته خواهد شد. - 4پس از نوشتن نام کالس خود و توصیف کننده دسترسی می توانید بدنه کالس خود را بین دو عالمت {} بنویسید در این قسمت می توانید متغیر ها و توابع مورد نیاز خود را در درون کالس تعریف نمایید. نحوه تعریف کالس ها در :#C برای تعریف یک متغیر در کالس باید به همان صورت عادی عمل نمایید. تنها نکته ای که باید به آن توجه نمایید این است که: یک مشخصه دسترسی را باید برای متغیر خود در نظر بگیرید که می تواند شامل public / private / protectedباشد. نحوه تعریف کالس ها در :#C برای اینک9ه بتوانی9د از ی9ک کالس اس9تفاده نمایی9د بای9د ب9ا اس9تفاده از دستور usingنام فضای نام9ی خود را در باالی برنام9ه اضاف9ه نمایید .بای9د ای9ن دستور را در کنار بقی9ه دس9تورات usingدر باالی برنام9ه اضاف9ه نمایی9د اگ9ر به ابتدای فایل خود مثال کد فرم برنامه خود نگاهی بیندازید این دستورات را پیدا خواهید کرد .ب9ه عنوان مثال در باالی ی9ک فرم عادی پ9س از ایجاد ،ای9ن دستورات usingقرار دارند: :#C نحوه تعریف کالس ها در using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Text; System.Windows.Forms; نکته نکته: شم9ا ه9م م9ی توانی9د دس9تورات usingخود را ب9ه ای9ن قس9مت اضاف9ه نمایید دس9تورات usingب9ه کامپایل9ر م9ی گوی9د که از کالس های موجود در فضای نام ذکر شده در جلوی آن می خواهیم استفاده نماییم. نحوه تعریف کالس ها در :#C پ9س از اضاف9ه کردن فضای نامتان م9ی توانی9د متغیری از نوع کالس مورد نظر تعری9ف نموده و از آ9ن اس9تفاده نمایی9د برای انجام ای9ن عم9ل بای9د ب9ه ص9ورت زی9ر عمل نمایید: ‏YourClassName InstanceObject=new ;)(ClassName همان طور که مشاهده می نمایید برای 9تعریف یک کالس ابتدا باید نام کالس خود را ذکر نمایید و سپس نام شی مورد نظر خود از نوع کالس را ذکر نموده و پس از آن باید بعد از عالمت مساوی و با ذکر کلمه کلیدی newنام کالس خود را به همراه دو پرانتز باز و بسته بیاورید. نحوه تعریف کالس ها در :#C چرا کالس ها به این گونه تعریف می شوند و کاربرد کلمه کلیدی newچیست؟ هنگام9ی ک9ه شم9ا ی9ک متغی9ر از نوع کالس تعری9ف م9ی کنی9د ای9ن متغی9ر ی9ک ش9ی نیس9ت بلک9ه در واقع ی9ک ارجاع اس9ت ک9ه م9ی توان9د ب9ه آ9ن ش9ی ا9شاره کن9د و ش9ی وا9قع9ی ب9ا اس9تفاده از کلم9ه کلیدی new ایجاد م9ی گردد کاربرد کلم9ه کلیدی newدر ای9ن اس9ت ک9ه ای9ن کلم9ه کلیدی در زمان اجرا حافظه مورد نیاز برای ایجاد ش9ی را از س9یستم م9ی گیرد و ی9ک ارجاع ب9ه آ9ن را باز م9ی گردان9د ک9ه این ارجاع م9ی توان9د در متغی9ر تعری9ف شده ذخ9یره گردد تعری9ف تمام9ی اشی9ا در #Cبای9د ب9ه ای9ن صورت انجام شود .ام9ا پ9س از کلم9ه کلیدی newنام کالس ب9ه همراه دو پرانت9ز ذک9ر م9ی شود ای9ن به #C م9ی گوی9د ک9ه تاب9ع س9ازنده کالس را فراخوان9ی کن .تاب9ع س9ازنده تابع9ی اس9ت ک9ه در ابتدای ایجاد هر ش9ی فراخوان9ی م9ی شود .ای9ن تاب9ع ه9م نام ب9ا نام کالس بوده و هی9چ نوع مقدار بازگشت9ی ه9م ندارد ا9گر شما تابع سازنده ای برای کالس خود تعریف ننمایید #Cسازنده ،پیش فرض کالس را اجرا 9خواهد کرد. بازگشت به فهرست :مثالی از کالس ها . PersonInfoیک کالس ساده به نام : است... رنگ چشم و،این کالس شامل اطالعات یک انسان از قبیل قد public class PersonInfo { ;private int _Age ;private string _Name ;private string _LastName )(public void Show { Console.Write("Name=" _Name " Last Name=" _LastName "Age=" ;_Age.ToString()) } بازگشت به فهرست :C# شی گرایی در زبان : بر چند پایه استوار است که به قرار زیرندC# شئ گرایی در Inherita nce Encapsu lation Polymor phism Abstract ion Interfac ( Inheritanceارث بری) پدر و فرزندی را در نظر بگیرید .هر پدری مشخصات فردی به خصوصی دارد .فرزند وی می تواند همه خصوصیات او را به ارث برد و خصوصیتهای دیگری نیز داشته باشد که پدرش ندارد .این یعنی ارث بری! برای تفهی9م را9ح9ت ت9ر مس9ئله فرض کنی9د کالس9ی ب9ه نام وس9یله نقلی9ه داریم .از آنج9ا ک9ه ه9ر وسیله نقلی9ه ای حرک9ت م9ی کن9د ،رن9گ دارد ،س9رعت دارد ،ترم9ز م9ی گیرد و ...م9ی توانی9م هم9ه ای9ن متدها و فیلده9ا را در کالس وس9یله نقلی9ه تعری9ف کنیم .حال ی9ک وهل9ه از ای9ن کالس را در نظ9ر بگیرید (مثال دوچرخ9ه!) .ی9ک دوچرخ9ه ی9ک وس9یله نقلی9ه اس9ت ک9ه هم9ه خص9وصیات عموم9ی ی9ک وس9یله نقلیه را دارد و البت9ه خص9وصیاتی دارد ک9ه مخت9ص خودش هس9تند و در انواع دیگ9ر یاف9ت نم9ی شوند .ب9ه این منظور ای9ن دوچرخ9ه م9ی توان9د ویژگیه9ا و متدهای مشترک را از کالس وس9یله نقلی9ه ب9ه ارث ب9برد و در عین حال ویژگیهای منحص9ر ب9ه خود را نی9ز داشت9ه باشد .قابلی9ت اس9تفاده دوباره از کد ()Reusability یکی از مزیات اصلی ارث بری است. Encapsulation همانطور ک9ه از اس9مش پیداس9ت ،ب9ه قرار دادن پیاده س9ازی در ی9ک کپس9ول اشاره م9ی کن9د ،به طوری ک9ه کاربر بیرون9ی از نحوه پیاده س9ازی مطل9ع نباش9د و فق9ط بدان9د ک9ه ای9ن کپسول کار خاص9ی را انجام م9ی دهد .وقتی ی9ک کپس9ول م9ی خوری9د نم9ی دانید ک9ه در داخ9ل آ9ن چه چیزی هست و فقط به این فکر می کنید که این کپسول چه تاثیری در بدن شما می گذارد. هدف Encapsulationای9ن اس9ت ک9ه م9ا را از پرداخت9ن ب9ه ری9ز موضوعات ره9ا کند و اشیاء را به صورت یک جعبه سیاهی بدانیم که به ازای یک ورودی خاص خروجی خاصی م9ی دهند .اگ9ر م9ی خواهی9م کدهای م9ا نی9ز ای9ن مورد را رعای9ت کنن9د بای9د س9عی کنیم نگاه کپس9ولی ب9ه اشیاء و عملکرد آنه9ا داشت9ه باشیم .در C#برای کپسوله کردن از Access ‏Modifierهای protected ،privateو publicاستفاده می شود. Polymorphism یعنی یک کار ثابت توسط فرزندان مختلف یک پدر که به طرق مختلفی انجام می شود .این دقیقا همان چیزی است که به آن چند شکلی یا Polymorphismمی گویند. Abstraction مجرد سازی :به کالسی مجرد گفته می شود که پیاده سازی متدها در آن انجام نمی شود! برای تعری9ف ی9ک کالس مجرد از کلم9ه کلیدی abstractاس9تفاده م9ی کنیم .فیلدهایی ک9ه م9ی خواهی9م در کالس9های مشت9ق شده از ای9ن کالس پیاده س9ازی شون9د حتم9ا بای9د با abstractتعری9ف شوند .ی9ک کالس مجرد م9ی توان9د فیلده9ا و متدهای نامجرد داشته باشد .اگ9ر مت9د نامجردی در ی9ک کالس مجرد تعری9ف کردی9د ،حتم9ا بای9د آ9ن را پیاده سازی کنید و نمی توانید پیاده سازی آن را به کالسهای مشتق شده بسپارید. Interface اینترفی9س در برنام9ه نویس9ی همانن9د همان کالس اس9ت تنه9ا ب9ا ای9ن تفاوت که هیچکدام از اعضای آ9ن پیاده س9ازی نم9ی شوند .در واق9ع ی9ک اینترفی9س گروه9ی از متده9ا ،خصوصیات، رویدادها و Indexerها هستند که در کنار هم جمع شده اند. اینترفی9س ه9ا را نم9ی توان ( Instantiateوهل9ه س9ازی) کرد (یعن9ی نم9ی توان وهل9ه ای 9از یک اینترفی9س ایجاد کرد!) .تنه9ا چیزی ک9ه ی9ک اینترفی9س دارا م9ی باش9د امضای ( )signatureتمامی اعضای 9آ9ن م9ی باشد .ب9ه ای9ن معن9ی ک9ه ورودی و خروج9ی متده9ا ،نوع Propertyه9ا و ...در آن تعری9ف م9ی شون9د ول9ی چیزی 9پیاده س9ازی نم9ی شود .اینترفی9س ه9ا س9ازنده و فیل9د ندارن9د (امری است بدیه9ی! چرا؟) .ی9ک اینترفی9س نم9ی توان9د Operator Overloadداشت9ه باش9د و دلی9ل آ9ن این اس9ت ک9ه در ص9ورت وجود ای9ن ویژگ9ی ،احتمال بروز مشکالت9ی از قبی9ل ناس9ازگاری ب9ا دیگر زبانهای .NETمانن9د VB.NETک9ه از ای9ن قابلی9ت پشتیبان9ی نم9ی کن9د وجود داشت .نحوه تعریف اینترفیس بس9یار شبیه تعریف کالس است تنها با این تفاوت که در اینترفیس پیاده سازی وجود ندارد. پایان

51,000 تومان