معرفی کلاس رگولار (Regular Class)
مقدمه
در درسهای قبلی به معرفی انواع دادهها در زبان برنامهنویسی سیشارپ پرداختم. به جای تکرار توضیحات مفصل درباره انواع عددی که اکثر علاقهمندان به برنامهنویسی با آنها آشنا هستند، تصمیم گرفتم به بررسی کلاسها بپردازم. در این درس، نوع کلاس معمولی یا "رگولار" (Regular Class) رو معرفی میکنم که یکی از مهمترین و پرکاربردترین ساختارها در سیشارپ است.
نوع کلاس (Regular Class)
کلاسها در سیشارپ الگوهایی هستن که برای ایجاد اشیاء (Objects) استفاده میشن. یه کلاس معمولی میتونه دادهها (فیلدها) و رفتارها (متدها) مربوط به یه موجودیت خاص رو تعریف کنه. این ساختار به برنامهنویس اجازه میده تا ویژگیها و عملکردهای یه شیء رو بهصورت سازمانیافته کنار هم قرار بده.
ویژگیهای کلاس
کلاسها میتونن شامل موارد زیر باشن:
فیلدها (Fields): متغیرهایی که وضعیت یا اطلاعات شیء رو نگه میدارن (مثل رنگ یا مدل یه خودرو).
متدها (Methods): عملکردهایی که رفتار شیء رو مشخص میکنن (مثل حرکت کردن یا توقف یه خودرو).
برای مثال، اگه بخواهیم یه کلاس برای یه خودرو تعریف کنیم، میتونیم فیلدهایی مثل Color (رنگ)، Model (مدل) و Year (سال تولید) داشته باشیم و متدهایی مثل Drive() (حرکت)، Stop() (توقف) و ChangeGear() (تغییر دنده) رو پیادهسازی کنیم.
یادآوری مهم
کلاسها در سیشارپ شباهتهایی با انواع داده ساده (مثل اعداد) دارن، چون هر دو برای ذخیره اطلاعات استفاده میشن. اما تفاوت کلیدی اینه که کلاسها امکانات بیشتری مثل تعریف رفتار، سازماندهی دادههای پیچیده و استفاده از مفاهیم شیءگرایی (مثل کپسولهسازی و وراثت) رو فراهم میکنن.
سازماندهی و اجرا
کلاسها به ما کمک میکنن تا دادهها و رفتارهای مرتبط با یه شیء رو توی یه ساختار منظم و قابلفهم سازماندهی کنیم. در حالی که یه نوع داده عددی (مثل int) فقط یه مقدار ساده رو نگه میداره، یه کلاس میتونه چندین نوع داده مختلف رو کنار هم داشته باشه و عملیات پیچیدهتری رو اجرا کنه. مثلاً، یه کلاس Car میتونه شامل فیلدهای Color (رشته)، Model (رشته) و Year (عدد صحیح) باشه و متدهایی مثل Drive() و Stop() رو برای مدیریت رفتار خودرو پیادهسازی کنه.
نگهداری انواع مختلف داده
یکی از مزیتهای بزرگ کلاسها اینه که میتونن انواع مختلف داده رو توی خودشون نگه دارن. این ویژگی باعث میشه اطلاعات مرتبط با یه شیء بهصورت منسجم ذخیره بشن و کد خواناتر و قابلنگهداریتر بشه. مثلاً، یه کلاس میتونه یه عدد صحیح برای سال تولید (Year)، یه رشته برای مدل (Model) و یه رشته دیگه برای رنگ (Color) داشته باشه.
مثال ساده از یک کلاس رگولار
در زیر یه نمونه ساده از کلاس Car رو میبینید که شامل یه فیلد، یه سازنده و یه متد است:
public class Car
{
private Label outputLabel; // فیلدی برای نگهداری مرجع به یک لیبل که پیامها را نمایش میدهد
public Car(Label label) // سازنده کلاس که یک لیبل را بهعنوان پارامتر میگیرد
{
outputLabel = label; // مقدار پارامتر ورودی را به فیلد اختصاص میدهیم
}
public void Start() // متدی برای شبیهسازی استارت خودرو و نمایش پیام
{
outputLabel.Text = "Car started."; // متن "Car started." را در لیبل نمایش میدهیم
}
}
توضیح مثال:
فیلد outputLabel: یه متغیر خصوصی از نوع Label (که معمولاً توی برنامههای Windows Forms استفاده میشه) برای نمایش پیامها.
سازنده Car: هنگام ساخت شیء، یه لیبل رو میگیره و به فیلد outputLabel اختصاص میده.
متد Start: وقتی فراخوانی بشه، متن "Car started." رو توی لیبل نشون میده.
نحوه استفاده:
Label myLabel = new Label(); // فرض کنید این لیبل توی فرم تعریف شده
Car myCar = new Car(myLabel); // ساخت یه نمونه از کلاس Car
myCar.Start(); // اجرای متد Start و نمایش پیام در لیبل