برنامه نویسی شئ گرا در سی شارپ
سی شارپ یک زبان ساده، مدرن، پرکاربد و شئ گراست که توسط ماکروسافت و برپایه فریم ورک دات نت توسعه یافته است. این زبان از خانواده سی و سی پلاس پلاس است. بنابراین آشنا بودن به این زبان ها، در یادگیری سی شارپ به شما کمک میکند. بحث اصلی این مقاله در مورد برنامه نویسی شئ گرا با زبان سی شارپ است و در مقاله های بعدی تکنولوژی های جدیدی که ماکروسافت به این زبان اضافه کرده آشنا خواهیم شد ، با zerotohero همراه باشید !!!
کلاس ها
کلاس ها در واقع طرح اولیه ای برای اشیاء میباشند. کلاس تعیین میکند که شئ ما چه خصوصیاتی میتواند داشته باشد یا اینکه چه عملیاتی میتواند انجام دهد. متدها و متغیرهایی که داخل کلاس تعریف میشوند، اعضای کلاس یا members of class گفته میشود. بلاک های برنامه در حالت رویه ای تابع است اما در برنامه نویسی شئ گرا که دارای کلاس های متعددی میتواند باشد، بلاک های برنامه متد نامیده می شوند.
تعریف یک کلاس
تعریف یک کلاس با کلمه کلیدی class شروع شده و به دنبال آن نام کلاس می آید. بدنه کلاس نیز با آکولاد باز و بسته مشخص میشود. در ادامه فرم کلی یک کلاس به صورت نمونه آورده شده است:
<access specifier> class class_name { // member variables <access specifier> <data type> variable1; <access specifier> <data type> variable2; ... <access specifier> <data type> variableN; // member methods <access specifier> <return type> method1(parameter_list) { // method body } <access specifier> <return type> method2(parameter_list) { // method body } ... <access specifier> <return type> methodN(parameter_list) { // method body } }
- Access specifiers : تعیین کننده های سطح دسترسی ، قوانین مربوط به دسترسی به اعضای کلاس را مشخص میکند. به طور پیشفرض اگر سطح دسترسی را مشخص نکنیم سطح دسترسی private در نظر گرفته میشود. سطح دسترسی های دیگری با نام public که به معنای در دسترس بودن برای همه متدها و اعضای کلاس و protected که فقط کلاس های فرزند (بحث وراثت) میتوانند به آن دسترسی داشته باشند، نیز وجود دارند.
- Data Type : این قسمت نوع متغیر و نوع مقدار بازگشتی متدها را مشخص میکند. در هنگام فراخوانی متدها و ساخت متغیر ها حتما باید بدان توجه داشت.
- برای دسترسی به اعضای یک کلاس کافی است پس از نام شئ یک نقطه بگذارید.
در ادامه نمونه ای از کلاس ها را مشاهده میکنید. در مثال پایین، یک کلاس به نام Box داریم که در متد main() برنامه دو شئ از این کلاس با نام های box1 و box2 ایجاد شده که متغیرهای هر شئ به طور جداگانه مقدار دهی شده است.
using System; namespace BoxApplication { class Box { public double length; // Length of a box public double breadth; // Breadth of a box public double height; // Height of a box } class Boxtester { static void Main(string[] args) { Box Box1 = new Box(); // Declare Box1 of type Box Box Box2 = new Box(); // Declare Box2 of type Box double volume = 0.0; // Store the volume of a box here // box 1 specification Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; // box 2 specification Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0; // volume of box 1 volume = Box1.height * Box1.length * Box1.breadth; Console.WriteLine("Volume of Box1 : {0}", volume); // volume of box 2 volume = Box2.height * Box2.length * Box2.breadth; Console.WriteLine("Volume of Box2 : {0}", volume); Console.ReadKey(); } } }
خروجی کد بالا به صورت زیر است:
Volume of Box1 : 210 Volume of Box2 : 1560
کپسوله کردن
کپسوله کردن شمارا قادر میکند که وضعیت اشیاء خود را پنهان کرده و دسترسی به آن ها را از طریق متدها و برخی خاصیت ها ممکن سازید. این باعث میشود وابستگی بین اشیاء کمتر شده و قابلیت نگهداری کد، برای انجام پروژه های گروهی بالا رود. معمولا برای کپسوله کردن وضعیت یک شئ از خصوصیات استفاده میکنند.
بگزارید مفاهیم بالا را در قالب یک مثال مشاهده کنیم:
using System; class myApplication1 { private string myname; public string _myname { get { return myname; } set { myname = value; } } }
در مثال بالا مشاهده میکنید که متغیر myname از نوع private تعریف شده است و توسط myname_ کپسوله شده است. به دلیل private بودن myname از خارج از کلاس myApplication1 نمیتوان بدان دسترسی پیدا کرد و برای دسترسی به آن باید از myname_ استفاده نمود. این کار باعث افزایش قابلیت نگهداری کد می شود و چنانچه نوع myname را تغییر دهید میتوانید این کار را بدون نگرانی بابت اختلال در سطح دسترسی سایر کدها انجام دهید
در ادامه مقاله های سی شارپ در باره سازنده ها و تخریب کننده های کلاس ها و متغیر های استاتیک بحث خواهیم کرد و با آن ها آشنا خواهیم شد ، پس با zerotohero همراه باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.