برنامهنویسی در زبان سی شارپ (#C) مانند بسیاری از زبانهای شیءگرا (Object-Oriented) حول مفهوم کلاسها و اشیاء شکل میگیرد. برای درک بهتر این موضوع، میتوان کلاسها را به نقشههای ساخت یک خانه تشبیه کرد. کلاسها به عنوان نقشه یا طرحی کلی برای ساخت اشیاء در نظر گرفته میشوند. در این مقاله، به طور جامع و با زبان ساده به مفهوم کلاس در سی شارپ پرداخته و آن را با مثالهای کاربردی و قابل درک توضیح میدهیم.
کلاس چیست؟
کلاس در سی شارپ، مانند یک قالب یا الگو است که ویژگیها و رفتارهای یک نوع خاص از اشیاء را تعریف میکند. اگر فرض کنیم که هر خانه یک شیء باشد، کلاس "House" همان نقشه یا طرح کلی برای ساخت این خانهها است. با استفاده از این طرح، میتوانیم خانههای متفاوتی بسازیم که ممکن است هر کدام ویژگیهای مختلفی داشته باشند، مانند رنگ دیوارها یا تعداد اتاقها.
تعریف کلاس در سی شارپ
برای تعریف یک کلاس در سی شارپ، از کلمه کلیدی class استفاده میشود. در ادامه، مثالی ساده از تعریف یک کلاس به نام House آورده شده است:
public class House
{
public int Rooms;
public string Color;
public void OpenDoor()
{
Console.WriteLine("Door is open!");
}
}
در این مثال:
House نام کلاسی است که ما تعریف کردهایم.
این کلاس شامل دو ویژگی (Attributes) است:
Rooms: برای ذخیره تعداد اتاقها به عنوان یک عدد صحیح (integer).
Color: برای ذخیره رنگ خانه به عنوان یک رشته (string).
یک رفتار یا متد (Method) به نام OpenDoor نیز وجود دارد که هنگام فراخوانی یک پیام ساده را چاپ میکند.
اشیاء در سی شارپ
هنگامی که کلاس را تعریف کردیم، میتوانیم از آن برای ساختن اشیاء استفاده کنیم. اشیاء نمونههایی از کلاس هستند که هر کدام میتوانند ویژگیهای خاص خود را داشته باشند. به عنوان مثال، از روی کلاس "House" میتوانیم چندین خانه با ویژگیهای مختلف ایجاد کنیم.
ساخت یک شیء از کلاس
برای ساخت یک شیء در سی شارپ، از کلمه کلیدی new استفاده میکنیم. به این ترتیب، میتوانیم نمونهای از کلاس House بسازیم:
House myHouse = new House();
myHouse.Rooms = 3;
myHouse.Color = "Blue";
myHouse.OpenDoor(); // This will print "Door is open!"
در این مثال:
یک شیء جدید به نام myHouse از کلاس House ایجاد کردهایم.
تعداد اتاقهای این خانه (3 اتاق) و رنگ آن (آبی) را مشخص کردهایم.
سپس متد OpenDoor را فراخوانی کردهایم که پیام "در باز شد" را چاپ میکند.
ویژگیهای کلاس و شیء
کلاسها در سی شارپ میتوانند شامل ویژگیها (Properties) و متدها (Methods) باشند:
ویژگیها (Properties):
ویژگیها مشخصاتی هستند که به اشیاء اختصاص داده میشوند. در مثال بالا، Rooms و Color به عنوان ویژگیهای خانه تعریف شدهاند.
متدها (Methods):
متدها عملکردهایی هستند که یک شیء میتواند انجام دهد. OpenDoor یک متد است که وقتی فراخوانی میشود، عملی را انجام میدهد (در اینجا چاپ پیام "Door is open!").
مثال کاربردی دیگر: کلاس "ماشین"
بیایید یک مثال دیگر برای درک بهتر مفهوم کلاس ارائه دهیم. فرض کنید میخواهید کلاسی به نام Car تعریف کنید که اطلاعات مربوط به یک ماشین را در خود ذخیره کند:
public class Car
{
public string Make;
public string Model;
public int Year;
public void StartEngine()
{
Console.WriteLine("Engine started!");
}
}
در این مثال:
Make: نشاندهنده شرکت سازنده خودرو است (مانند BMW).
Model: مدل خودرو را ذخیره میکند (مانند X5).
Year: سال تولید خودرو را مشخص میکند.
StartEngine: متدی است که هنگام فراخوانی، پیامی مبنی بر شروع به کار کردن موتور چاپ میکند.
ساخت یک شیء از کلاس “Car”
اکنون میتوانیم نمونهای از کلاس Car ایجاد کنیم:
Car myCar = new Car();
myCar.Make = "BMW";
myCar.Model = "X5";
myCar.Year = 2021;
myCar.StartEngine(); // This will print "Engine started!"
در اینجا، یک شیء به نام myCar ایجاد کردهایم که نشاندهنده یک خودروی BMW X5 مدل 2021 است. سپس متد StartEngine را فراخوانی میکنیم که پیامی را به خروجی چاپ میکند.
مفهوم سازندهها (Constructors) در کلاسها
برای سادهتر کردن ایجاد اشیاء و مقداردهی اولیه، سی شارپ از سازندهها (Constructors) استفاده میکند. سازندهها متدهایی هستند که به محض ساخت یک شیء از کلاس، فراخوانی میشوند و معمولاً برای مقداردهی اولیه به ویژگیها استفاده میشوند.
در مثال کلاس Car میتوانیم یک سازنده اضافه کنیم:
public class Car
{
public string Make;
public string Model;
public int Year;
public Car(string make, string model, int year)
{
Make = make;
Model = model;
Year = year;
}
public void StartEngine()
{
Console.WriteLine("Engine started!");
}
}
حالا میتوانیم هنگام ایجاد یک شیء، مقادیر اولیه را مستقیماً به سازنده پاس دهیم:
Car myCar = new Car("BMW", "X5", 2021);
myCar.StartEngine(); // This will print "Engine started!"
نتیجهگیری
کلاسها در سی شارپ یکی از اصول اساسی و مهم برنامهنویسی شیءگرا هستند. با تعریف کلاسها، میتوانید اشیاء مختلفی با ویژگیها و رفتارهای خاص خود ایجاد کنید. این امکان به شما کمک میکند تا پروژههای بزرگ و پیچیده را به شکلی ساختارمند و منظم مدیریت کنید.
در این مقاله با مفاهیم پایهای کلاس، ویژگیها، متدها و سازندهها در سی شارپ آشنا شدیم. اگر میخواهید به برنامهنویسی سی شارپ مسلط شوید و با مفاهیم پیشرفتهتری آشنا شوید، توصیه میکنم در دورههای آموزشی باگتو شرکت کنید تا دانش خود را گسترش دهید و به یک برنامهنویس حرفهای تبدیل شوید.
در مقالهای که به توضیح "کلاس در سیشارپ چیست" میپردازد، مفهوم اساسی کلاسها و نقش آنها در برنامهنویسی شیگرا را شرح میدهیم. در این زمینه، مقالاتی مانند "Indexer در سیشارپ" که به استفاده از ایندکسها در کلاسها میپردازد، یا "AddRange در سی شارپ" که نحوهی افزودن عناصر به یک کلاس کلکشن را توضیح میدهد، میتوانند مفید باشند. همچنین، "مقایسه دو لیست در سیشارپ" به نحوه مقایسه انواع کلاسهای کلکشن میپردازد. این مقالات میتوانند به شما کمک کنند تا درک بهتری از کلاسها و کاربردهای آنها در سیشارپ داشته باشید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید