شی گرایی در سی شارپ
بعد از بررسی بحثهای ابتدایی دوره آموزش برنامه نویسی سی شارپ از حالا با ادامهی بحث این دوره همراه شما هستیم. اما رویکردهای مطالب جدید این دوره به شکل حرفهایتر است.
آموزش سی شارپ – شی گرایی
حتما قبل از بررسی برنامه نویسی شی گرا در سی شارپ نوشتهی مطالب قبلی این دورهی آموزشی را با هشتگ #دوره آموزشی_سی_شارپ در سایت ما را مطالعه کنید.
مفاهیم برنامه نویسی شی گرا
یک زبان برنامهنویسی در صورتی شیگرا است که شامل موارد زیر شود:
- کلاس
- شی
- انتزاع
- کپسوله سازی
- واسطه
- مخفی کردن دادهها یا اطلاعات
- ارث بری
- چند ریختی
کلاس
Class قالب یک Object را مشخص میکند، در واقع Class مشخص کنندهی data و code است که code روی data عمل میکند؛ یک کلاس با کلمهکلیدی class ساخته میشود.
فرم کلی یک کلاس که شامل instance variable و method است:
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 هستند.
مثال:
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 بهشکل زیر است:
access ret-type name(parameter-list) { // body of method } مثال : 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 مواجه شود.
مثال:
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 است.
فرم کلی سازنده به شکل زیر است:
Class class-name { access class-name(param-list) { // constructor code } }
نکته: همهی کلاسها یک constructor دارند و اگر constructor را تعریف نکنیم سیشارپ بهصورت اتوماتیک یک default constructor برای کلاس میسازد. به همهی متغیرهای کلاس یک مقدار پیشفرض میدهد. به value typeهای عددی مقدار صفر، برای بولین مقدار پیشفرض false و برای رشتهها، تاریخ و reference type ها مقدار null را در نظر میگیرد. اما اگرخودمان constructor را بسازیم دیگر از default constructor استفاده نمیشود.
مثال:
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);
بعد از بررسی این جلسه از دورهی آموزشی سی شارپ شما توانایی برنامه نویسی سی شارپ را با سبک شی گرایی خواهید داشت.
نظرات خود را در ارتباط با “شی گرایی در سی شارپ” برای ما بنویسید تا در جلسات بعدی بهتر شویم.
برای استفاده از تمامی جلسات از هشتگ #دوره آموزشی_سی_شارپ در سایت ما استفاده کنید.
منتظر جلسهی بعدی دوره آموزشی سی شارپ بمانید.
ارسال پاسخ