شی گرایی در سی شارپ
بعد از بررسی بحث های ابتدایی دوره آموزش برنامه نویسی سی شارپ از حالا با ادامه ی بحث این دوره همراه شما هستیم.
اما رویکردهای مطالب جدید این دوره به شکل حرفه ای تر می باشد.
حتما قبل از بررسی برنامه نویسی شی گرا در سی شارپ نوشته ی مطالب قبلی این دوره ی آموزشی را با هشتگ #دوره آموزشی_سی_شارپ در سایت ما را مطالعه کنید.
مفاهیم برنامه نویسی شی گرا :
یک زبان برنامهنویسی در صورتی شیگرا است که شامل مفاهیم زیر باشد:
- کلاس
- شی
- انتزاع
- کپسوله سازی
- واسطه
- مخفی کردن داده ها یا اطلاعات
- ارث بری
- چند ریختی
کلاس :
Class قالب یک Object را مشخص میکند، در واقع Class مشخص کنندهی data و code است که code روی data عمل میکند؛
یک کلاس با کلمهکلیدی class ساخته میشود.
فرم کلی یک کلاس که شامل instance variable و method است:
1 2 3 4 5 6 7 8 9 10 11 12 | class className { // declare instance variables access type var-name1; access type var-name2; // declare methods access ret-type methodName1(parameters) { // body of method } } |
شی :
یک Object بیان کنندهی چیزی است که در دنیای واقعی قابل درک باشد و یک سری فعالیتهای مرتبط به هم را انجام میدهد؛
هر Object ویژگی ها و رفتارهای خاص خود را دارد که نمونهای از یک Class است.
وقتی یک کلاس را تعریف میکنیم، هم data و هم code ای که روی این دیتا عمل میکند را تعریف میکنیم.
که در حالت کلی مواردی که در یک کلاس قرار میدهیم در دو دستهی Data Members و Function Members تقسیمبندی میشوند.
data members :
شامل instance variable و static variable هستند.
function members :
شامل متد، constructor، destructor، indexer، event، operators و properties هستند .
مثال :
1 2 3 4 5 6 7 8 9 10 11 | class Car { public string Color; public string Model; public int MaxSpeed; } Car BMW = new Car(); BMW.Color = "Yellow"; BMW.Model = "McLaren"; BMW.MaxSpeed = 300; |
دسترسی ها :
نوع دسترسی به متغیر و متد مربوطه را مشخص میکند و اختیاری است ( به طور پیشفرض private می باشد . )
نکته : اعضایی از کلاس که دسترسی آنها private باشد فقط در همان کلاس و اعضای همان کلاس قابل دسترسی هستند. اما اگر دسترسی عضوی از نوع public باشد آن عضو در همهجای برنامه قابل دسترسی است.
مقدار بازگشتی :
نوع داده ای فیلدها و متد را مشخص میکند که باید حتما مشخص شود. ( به جز void )
متد ها :
متد ها شبیه به Procedure ها، Function ها و … در دیگر زبانهای برنامهنویسی هستند؛
Method ها و متغیرها (instance variables) تشکیل دهندهی اجزای اصلی کلاس هستند.
اصولاً Method ها، متغیرهایی که در کلاس تعریف میشوند را تغییر میدهند و یا کار وفرآیندی را انجام میدهند.
اما در بیشتر موارد باعث میشوند که بتوانیم به متغیرهای Private کلاس دسترسی داشته باشیم.
که هر Method فقط یک وظیفه را بر عهده دارد، و نمیتواند چند وظیفه را داشته باشد.
نکته :
معمولاً قسمتهای مختلف برنامه از طریق Method های یک کلاس با آن کلاس در ارتباط هستند.
فرم کلی یک Method بهشکل زیر است:
1 2 3 4 | access ret-type name(parameter-list) { // body of method } |
مثال :
1 2 3 4 5 6 7 8 9 10 11 | class MyClass { public int MySum(int a, int b) { Return a+b; } } // Using : MyClass myclas = new MyClass(); int x = myclas. MySum(5,6); |
استفاده از پارامترها وپایان یافتن یک Method :
طریقهی تعریف کردن پارامتر شبیه تعریف یک متغیر است.
اما این پارامترها فقط در محدودهی خود آن متد شناخته قابل استفاده هستند؛
در دو حالت یک متد پایان می یابد:
۱ – زمانی که برنامه به انتهای متد برسد.
۲ – زمانی که با کلمه return مواجه شود.
مثال :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class MyClass { public int c; public void MySum(int a, int b) { c = a + b ; } public bool IsEven(int number) { if (number % 2 == 0) return true; else return false; } } |
سازنده و چگونگی استفاده از آن :
همزمان با ساخت شیء ، آن را مقداردهی نیز میکند و نام سازنده باید نام همان کلاسی باشد که سازنده در آن قرار دارد؛
سازنده از لحاظ syntax مشابه به method است.
با این تفاوت که هیچ مقداری را برنمیگرداند و معمولا دسترسی آن بصورت public است .
فرم کلی سازنده به شکل زیر است :
1 2 3 4 5 6 7 | Class class-name { access class-name(param-list) { // constructor code } } |
نکته :
همهی کلاسها یک constructor دارند و اگر constructor را تعریف نکنیم سیشارپ بهصورت اتوماتیک یک default constructor برای کلاس می سازد.
به همهی متغیرهای کلاس یک مقدار پیشفرض می دهد.
به value type های عددی مقدار صفر، برای بولین مقدار پیشفرض false و برای رشته ها ، تاریخ و reference type ها مقدار null را در نظر میگیرد.
اما اگرخودمان constructor را بسازیم دیگر از default constructor استفاده نمیشود.
مثال :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Car { public string Color; public string Model; public int MaxSpeed; // سازنده کلاس public Car(string carColor, string carModel, int carMaxSpeed) { Color = carColor; Model = carModel; MaxSpeed = carMaxSpeed; } } // Using : Car BMW = new Car("Black", "BMW", 250); |
بعد از بررسی این جلسه از دوره ی آموزشی سی شارپ شما توانایی برنامه نویسی سی شارپ را با سبک شی گرایی خواهید داشت.
نظرات خود را در ارتباط با “شی گرایی در سی شارپ” برای ما بنویسید تا در جلسات بعدی بهتر شویم.
برای استفاده از تمامی جلسات از هشتگ #دوره آموزشی_سی_شارپ در سایت ما استفاده کنید.
منتظر جلسه ی بعدی دوره آموزشی سی شارپ باشید.
موفق و پایدار باشید.