کلاس ها در C#
در این بخش به بررسی کلاس ها در C# می پردازیم، یکی از ویژگیهای برجسته زبان C#، پشتیبانی قوی از برنامهنویسی شیگرا (Object-Oriented Programming یا OOP) است. در قلب این رویکرد، مفهوم کلاسها قرار دارد. کلاسها به ما اجازه میدهند که دادهها و رفتارهای مرتبط را در قالبی واحد و منسجم تعریف کنیم. این ویژگی نهتنها باعث سازماندهی بهتر کد میشود، بلکه قابلیت توسعه، خوانایی و استفاده مجدد از کد را نیز افزایش میدهد.
در برنامهنویسی با C#، کلاسها همچون نقشههایی برای ساخت اشیا (Objects) عمل میکنند. هر شیء نمونهای از یک کلاس است که دادههای خاص خود را نگهداری کرده و عملکردهای مشخصی ارائه میدهد. با استفاده از کلاسها، میتوانیم رفتارهای پیچیدهای را طراحی و پیادهسازی کنیم که شامل ویژگیهایی مانند وراثت، چندریختی (Polymorphism)، و کپسولهسازی (Encapsulation) است. در این مقاله، قصد داریم مفاهیم اصلی کلاسها را به صورت جامع بررسی کنیم و با ارائه مثالهای کاربردی، شما را با اصول و نحوه استفاده از آنها در پروژههای واقعی آشنا کنیم.
تعریف کلاس در C#
در C#، یک کلاس با استفاده از کلمه کلیدی class
تعریف میشود. ساختار اصلی تعریف یک کلاس به شکل زیر است:
class MyClass
{
// اعضای کلاس شامل فیلدها، متدها، سازندهها و ویژگیها
}
هر کلاس میتواند شامل فیلدها (Fields) برای نگهداری دادهها، متدها (Methods) برای انجام عملیات، و ویژگیها (Properties) برای کنترل دسترسی به دادهها باشد. در ادامه یک مثال ساده از تعریف یک کلاس آورده شده است:
توضیح مثال:
Name
وAge
فیلدهایی هستند که اطلاعات مربوط به هر شخص را نگهداری میکنند.- متد
Introduce
یک رفتار مشخص برای کلاس است که اطلاعات شخص را بهصورت یک پیام چاپ میکند.
سازندهها (Constructors) در کلاسها
سازندهها متدهای خاصی هستند که هنگام ایجاد یک شیء از کلاس بهصورت خودکار اجرا میشوند. آنها معمولاً برای مقداردهی اولیه به فیلدهای کلاس استفاده میشوند. در C#، سازندهها با نام کلاس تعریف شده و بدون مقدار بازگشتی (حتی void) هستند.
مثال سازنده:
استفاده از سازنده:
Car myCar = new Car("Toyota", 2022);
myCar.DisplayInfo();
توضیح: سازنده Car
هنگام ایجاد شیء مقدار اولیه برای Brand
و Year
تعیین میکند. این کار، کد را سادهتر و مدیریتپذیرتر میسازد.
کپسولهسازی (Encapsulation)
کپسولهسازی یکی از اصول اساسی شیگرایی است که به ما اجازه میدهد دادهها را مخفی کرده و فقط از طریق متدها یا ویژگیها به آنها دسترسی داشته باشیم. در C#، این کار معمولاً با استفاده از دسترسیدهندهها (Access Modifiers) مانند private
و public
انجام میشود.
مثال:
توضیح:
- فیلد
balance
بهصورتprivate
تعریف شده است و نمیتوان مستقیماً به آن دسترسی داشت. - متدهای
Deposit
وGetBalance
برای مدیریت دسترسی بهbalance
استفاده میشوند.
وراثت (Inheritance) در کلاسها
وراثت به شما امکان میدهد که یک کلاس جدید بر پایه یک کلاس موجود ایجاد کنید. این ویژگی، قابلیت استفاده مجدد از کد را افزایش میدهد و ساختار سلسلهمراتبی ایجاد میکند.
مثال:
استفاده:
Dog myDog = new Dog();
myDog.Eat(); // از کلاس پایه
myDog.Bark(); // از کلاس فرزند
توضیح:
- کلاس
Dog
از کلاسAnimal
ارثبری کرده است، بنابراین میتواند از متدEat
استفاده کند. - متد
Bark
به کلاسDog
اضافه شده و مختص آن است.
چندریختی (Polymorphism) در کلاسها
چندریختی به شما اجازه میدهد که از یک رابط واحد برای اشکال مختلف استفاده کنید. در C#، این ویژگی با استفاده از متدهای مجازی (virtual
) و بازنویسی (override
) پیادهسازی میشود.
مثال:
استفاده:
Shape myShape = new Circle();
myShape.Draw(); // "Drawing a circle."
توضیح:
- متد
Draw
در کلاس پایهShape
تعریف شده است. - کلاس
Circle
این متد را بازنویسی کرده تا رفتار خاص خود را ارائه دهد.
کلاسها یکی از ارکان اصلی برنامهنویسی شیگرا در C# هستند که امکان طراحی ساختارهای پیچیده، خوانا و قابل نگهداری را فراهم میکنند. در این مقاله، مفاهیم اصلی کلاسها شامل تعریف، سازندهها، کپسولهسازی، وراثت و چندریختی را بررسی کردیم.
منابع
- Microsoft Documentation on C# Classes
- C# Programming Guide – TutorialsPoint
- GeeksforGeeks: Object-Oriented Programming in C#
آیا این مطلب برای شما مفید بود ؟