اعضای کلاس در C#
فیلدها و متدها درون کلاسها معمولاً به عنوان اعضای کلاس شناخته میشوند.
در مثال زیر یک کلاس به نام Car با دو فیلد و یک متد تعریف شده است:
// کلاس
class MyClass
{
// اعضای کلاس
string color = "red"; // فیلد
int maxSpeed = 400; // فیلد
public void fullThrottle() // متد
{
Console.WriteLine("ماشین با سرعتی که می تواند برود.");
}
}
فیلد در C#
در فصل قبل، یاد گرفتید که متغیرهای داخل یک کلاس را فیلد می نامند و می توانید با ایجاد یک شی از کلاس و با استفاده از دستور dot (.) به آنها دسترسی داشته باشید.
مثال زیر یک شی از کلاس Car با نام myObj ایجاد می کند. سپس مقدار فیلدهای color و maxSpeed را چاپ می کنیم:
class Car
{
string color = "red";
int maxSpeed = 400;
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.color);
Console.WriteLine(myObj.maxSpeed);
}
}
همچنین می توان فیلد ها را خالی گذاشت و هنگام ایجاد شی آن ها را تعییر داد.
class Car
{
string color;
int maxSpeed;
static void Main(string[] args)
{
Car myObj = new Car();
myObj.color = "red";
myObj.maxSpeed = 400;
Console.WriteLine(myObj.color);
Console.WriteLine(myObj.maxSpeed);
}
این موضوع به ویژه زمانی مفید است که بخواهیم چندین شیء از یک کلاس ایجاد کنیم.
class Car
{
string model;
string color;
int year;
static void Main(string[] args)
{
Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
متد های شی در C#
در فصل متدهای C# یاد گرفتید که متدها برای انجام کارهای خاصی استفاده میشوند.
متدها معمولاً به یک کلاس تعلق دارند و تعیین میکنند که یک شیء از یک کلاس چگونه رفتار میکند.
مانند فیلدها، میتوانید با استفاده از نقطه (dot) به متدها دسترسی پیدا کنید. با این حال، توجه داشته باشید که متد باید عمومی (public) باشد. و به یاد داشته باشید
که برای فراخوانی (اجرا) متد، از نام متد، به همراه پرانتز () و یک علامت سمیکالن ; استفاده میکنیم:
class Car
{
string color; // فیلد
int maxSpeed; // فیلد
public void fullThrottle() // متد
{
Console.WriteLine("The car is going as fast as it can!");
}
static void Main(string[] args)
{
Car myObj = new Car();
myObj.fullThrottle(); // متد را صدا کنید
}
}
ما متد را به عنوان public تعریف کردیم تا بتوانیم آن را از طریق اشیاء (objects) کلاس دسترسی پیدا کنیم. این یعنی برای استفاده از این متد، باید یک نمونه (object) از کلاس بسازیم.
از طرف دیگر، اگر متد را به عنوان static تعریف کنیم، میتوانیم بدون نیاز به ایجاد یک شیء از کلاس، به آن دسترسی پیدا کنیم.
بنابراین، انتخاب بین public و static بستگی به این دارد که آیا میخواهیم متد فقط از طریق اشیاء کلاس قابل دسترسی باشد یا اینکه بتوانیم به طور مستقیم از خود کلاس به آن دسترسی داشته باشیم.
استفاده از چندین کلاس در C#
در فصل قبل یاد گرفتیم که میتوانیم از چندین کلاس برای سازماندهی بهتر استفاده کنیم. یکی از کلاسها میتوان برای تعریف فیلدها و متدها باشد و کلاس دیگر برای اجرای برنامه. این کار به ما کمک میکند که کد را بهتر مدیریت کنیم.
class Car
{
public string model;
public string color;
public int year;
public void fullThrottle()
{
Console.WriteLine("The car is going as fast as it can!");
}
}
class Program
{
static void Main(string[] args)
{
Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
کلمه کلیدی public به عنوان یک تبدبل کننده دسترسی شناخته میشود که مشخص میکند فیلدهای کلاس Car برای دیگر کلاسها، مانند Program، قابل دسترسی هستند.
در فصلهای بعدی بیشتر درباره تبدبل کننده دسترسی یاد خواهید گرفت.