اعضای کلاس (Class Members)
اعضای کلاس یعنی «فیلدها» و «متدها». فیلد (Field) یعنی متغیر داخل کلاس. متد (Method) یعنی کارهایی که کلاس انجام می دهد. مثل ماشین مدرسه: رنگ و سرعت فیلد هستند، ترمز و حرکت متد هستند.
تعریف اعضای کلاس
در این نمونه، یک کلاس با دو فیلد و یک متد داریم.
// The class
class MyClass
{
// Class members
string color = "red";
int maxSpeed = 200;
public void fullThrottle()
{
Console.WriteLine("The car is going as fast as it can!");
}
}
فیلدها (Fields)
فیلدها همان متغیرهای داخل کلاس هستند. با شیء و نقطه به آن ها می رسیم.
class Car
{
string color = "red";
int maxSpeed = 200;
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 = 200;
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);
}
}
متدهای شیء (Object Methods)
متد، رفتار شیء را توضیح می دهد. با نام متد و پرانتز صدا می زنیم.
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 یعنی «قابل دسترسی از بیرون کلاس». static یعنی «بدون ساخت شیء قابل دسترسی». اینجا متد شیء است، پس public کافی است.
چیدمان با چند کلاس
بهتر است منطق و اجرای برنامه جدا باشند. یکی کلاس داده و متد، دیگری فقط Main().
prog2.cs
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!");
}
}
prog.cs
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 یک «تعدیل گر دسترسی (Access Modifier)» است. یعنی از کلاس های دیگر هم می توان فیلدها را دید.
گام های تمرینی اعضای کلاس
- یک کلاس با دو فیلد بساز.
- یک شیء بساز و فیلدها را چاپ کن.
- فیلدها را خالی بگذار و بعد مقدار بده.
- دو شیء بساز و مقادیرشان را مقایسه کن.
- کد را در دو کلاس جدا اجرا کن.
برای پایه بیشتر، صفحه کلاس ها/اشیا و موضوع چند شیء را هم ببین. این ها به فهم شیء گرایی کمک می کنند.
جمع بندی سریع
- اعضای کلاس یعنی فیلد و متد.
- با شیء و نقطه به فیلد می رسی.
- متد رفتار شیء را اجرا می کند.
publicدسترسی بین کلاس ها را ممکن می کند.- جدا کردن کلاس ها کد را مرتب تر می کند.