با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در بخش قبلی اولین برنامه خود را با زبان #C نوشتیم و ساختار کلی دستورات را در این زبان شرح دادیم ، حالا در این آموزش به معرفی کلاس ها در زبان #C می پردازیم.
کلاس ها نقشه و طرح اشیاء هستند ، در دنیای واقعی هر شی دارای رنگ ، وزن ، ابعاد و … است . به عنوان مثال یک اتومبیل را در نظر بگیرید ، این اتومبیل دارای رنگ ، وزن ، میزان مصرف بنزین و … است.
نقشه طرح این اتومبیل همان کلاس می باشد ، و می توان از هر کلاس چندین شی ساخت برای مثال می توان چندین نوع مختلف اتومبیل بوسیله نقشه و طرح (کلاس) آن ایجاد کرد.
بنابراین کلاس ها ، نقشه و طرحی برای اشیا هستند که توسط آنها می توان اشیاء مختلفی را بسازیم.
در برنامه نویسی شی گراء ، در یک کلاس می توان خاصیت ها (properties)، فیلدها (fields) ، رویدادها (events)، متدها (method ) و … را تعریف کرد.
در C #، یک کلاس را میتوانید با استفاده از کلمه کلیدی Class تعریف کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class MyClass { public string myField = string.Empty; public MyClass() { } public void MyMethod(int parameter1, string parameter2) { Console.WriteLine("First Parameter {0}, second parameter {1}", parameter1, parameter2); } public int MyAutoImplementedProperty { get; set; } private int myPropertyVar; public int MyProperty { get { return myPropertyVar; } set { myPropertyVar = value; } } } |
این موارد روی کلاسها ، متدها، پراپرتی ها ، فیلدها و … اعمال می شوند. آنها نوع دسترسی به کلاس و اعضای آن را تعریف می کنند. میتوانند در سه نوع عمومی (Public)، خصوصی (private) ، محافظت شده (protected) و داخلی (internal) باشند ، در بخش کلمات کلیدی بیشتر درباره آنها توضیح خواهیم داد.
فیلد یک متغیر در سطح کلاس است ، نوع دسترسی آن باید خصوصی (private) باشد.
هنگامی که یک کلاس را فراخوانی می کنید به طور پیش فرض متد سازنده آن هم نیز فراخوانی می شود.
نام متد سازنده باید با نام کلاس یکی باشد و به صورت زیر تعریف می شود :
<نام> <نوع دسترسی>(){ }
1 2 3 4 5 6 7 | class MyClass { public MyClass() { } } |
حرکت اتومبیل در دنیا واقعی میتواند یک متد باشد ، متدها به صورت زیر نوشته می شوند :
{نوع دسترسی} {نوع خروجی} {نام متد} ({نام پارامتر نوع پارامتر})
1 2 3 4 5 | public void MyMethod(int parameter1, string parameter2) { // write your method code here.. } |
همان صفات در دنیای واقعی هستند مانند رنگ اتومبیل ، نمونه کدهای زیر یک پراپرتی هستند:
1 2 3 4 5 6 7 | private int _myPropertyVar; public int MyProperty { get { return _myPropertyVar; } set { _myPropertyVar = value; } } |
بخش Get وقتی اجرا می شود که کاربر بخواهد خاصیت را بخواند و Set وقتی اجرا میشود که کاربر بخواهد خاصیت را مقدار دهی کند.
همچنین شما می توانید عملیات خاصی را در get یا set انجام دهید مانند مثال زیر :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private int _myPropertyVar; public int MyProperty { get { return _myPropertyVar / 2; } set { if (value > 100) _myPropertyVar = 100; else _myPropertyVar = value; ; } } |
از C # 3.0 به بعد، تعریف پراپرتی آسانتر شد اگر شما نمی خواهید در متدهای get و یا set پراپرتی تغییراتی را انجام دهید از این روش استفاده کنید:
1 | public int MyAutoImplementedProperty { get; set; } |
فضای نام یک ظرف برای مجموعه ای از کلاس ها و فضاهای نامی مرتبط است. فضای نام و کلاس ها با استفاده از یک نقطه (.) نمایش داده می شوند.
در #C ، فضای نام را می توان با استفاده از کلید واژه namespace تعریف کرد.
1 2 3 4 5 6 7 | namespace CSharpTutorials { class MyClass { } } |
در مثال فوق، نام کامل کلاس ما CSharpTutorials.MyClass است.
فضای نام می تواند فضای نامهای دیگر را شامل شود. فضاهای نام داخلی می توانند با استفاده از (.) از هم جدا شوند.
1 2 3 4 5 6 7 | namespace CSharpTutorials.Examples { class MyClassExample { } } |
در مثال بالا، نام کامل کلاس ما CSharpTutorials.Example.MyClassExample است.
در این قسمت با کلاسها و ساختار کدنویسی آنها در #C آشنا شدید .
در جلسه بعدی به توضیح و معرفی متغییر ها و انواع آنها در زبان برنامه نویسی #C می پردازیم.