برنامهنویسی شیگرا (Object-Oriented Programming یا OOP) یکی از اصول پایهای و مهم در بسیاری از زبانهای برنامهنویسی مدرن، از جمله سیشارپ (#C) است. در این سبک برنامهنویسی، از کلاسها و اشیاء برای مدلسازی دنیای واقعی در برنامهها استفاده میشود. یکی از مفاهیم کلیدی در OOP، نمونهسازی (Instancing) کلاسها است. در این مقاله، به زبان ساده و روان به بررسی چگونگی فراخوانی و نمونهسازی کلاسها در سیشارپ میپردازیم.
کلاس چیست؟
در زبان سیشارپ، کلاس یک قالب یا الگو است که برای تعریف اشیاء استفاده میشود. به عبارت دیگر، کلاسها ساختار و رفتار اشیاء را تعیین میکنند. هر کلاس میتواند شامل فیلدها (متغیرها)، متدها (رفتارها)، و خصوصیات باشد که همه آنها مشخص میکنند که اشیاء این کلاس چه ویژگیها و چه رفتارهایی دارند.
نمونهسازی (Instancing) چیست؟
نمونهسازی فرآیندی است که طی آن، یک شیء از یک کلاس ایجاد میشود. وقتی یک شیء از یک کلاس ایجاد میکنید، به نوعی دارید از کلاس به عنوان یک الگو استفاده میکنید تا یک موجودیت واقعی (یک شیء) بسازید. در این فرآیند، کلاس مانند یک قالب کیک عمل میکند و شیء مانند کیکی است که از این قالب ساخته میشود.
برای نمونهسازی در سیشارپ، از کلمه کلیدی new استفاده میکنیم. این کلمه کلیدی یک شیء جدید از کلاس ایجاد میکند و آن را در حافظه ذخیره میکند.
مثال ساده از فراخوانی و نمونهسازی کلاس
فرض کنید شما یک کلاس به نام Dog دارید که خصوصیات و رفتارهای یک سگ را تعریف میکند. حالا میخواهید یک شیء جدید از این کلاس بسازید تا نمایانگر یک سگ خاص باشد. برای این کار، از کد زیر استفاده میکنید:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public void Bark()
{
Console.WriteLine("Woof!");
}
}
این کد یک کلاس به نام Dog تعریف میکند که شامل دو خصوصیت (Name و Age) و یک متد (Bark) است. حالا برای نمونهسازی از این کلاس، به شکل زیر عمل میکنیم:
Dog myDog = new Dog();
myDog.Name = "Rex";
myDog.Age = 3;
myDog.Bark(); // خروجی: Woof!
در این مثال:
- Dog myDog = new Dog(); یک شیء جدید به نام myDog از کلاس Dog ایجاد میکند.
- سپس با استفاده از myDog.Name و myDog.Age، خصوصیات این شیء را مقداردهی میکنیم.
- در نهایت، با فراخوانی myDog.Bark()، متد Bark اجرا میشود و صدای پارس به نمایش در میآید.
فراخوانی کلاس از یک فضای نام (Namespace) دیگر
گاهی اوقات، ممکن است کلاسها در فضای نام (namespace)های مختلفی تعریف شوند. فضای نام به ما اجازه میدهد تا کلاسها را سازماندهی کنیم و از نامهای تکراری جلوگیری کنیم. برای فراخوانی کلاسی که در یک فضای نام دیگر قرار دارد، باید از نام کامل کلاس استفاده کنیم یا با استفاده از دستور using فضای نام را وارد کنیم.
به عنوان مثال، اگر کلاس Dog در فضای نام Animal تعریف شده باشد:
namespace Animal
{
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public void Bark()
{
Console.WriteLine("Woof!");
}
}
}
برای فراخوانی این کلاس از یک فضای نام دیگر، میتوانیم به دو روش عمل کنیم:
استفاده از نام کامل کلاس:
Animal.Dog myDog = new Animal.Dog();
myDog.Name = "Rex";
myDog.Bark();
استفاده از دستور using:
using Animal;
Dog myDog = new Dog();
myDog.Name = "Rex";
myDog.Bark();
اهمیت نمونهسازی در برنامهنویسی شیگرا
نمونهسازی یکی از مهمترین ویژگیهای برنامهنویسی شیگرا است، زیرا با استفاده از آن میتوانیم اشیاء مختلفی از یک کلاس ایجاد کنیم و هر شیء ویژگیها و رفتارهای منحصر به فرد خود را داشته باشد. این امکان باعث میشود تا کدهای ما انعطافپذیرتر و قابل توسعهتر شوند.
به عنوان مثال، در کلاس Dog که تعریف کردیم، میتوانیم چندین شیء مختلف با خصوصیات متفاوت ایجاد کنیم:
Dog dog1 = new Dog();
dog1.Name = "Buddy";
dog1.Age = 2;
Dog dog2 = new Dog();
dog2.Name = "Max";
dog2.Age = 4;
در اینجا، دو شیء مختلف از کلاDog با نامها و سنهای متفاوت ایجاد کردهایم. هر یک از این اشیاء بهصورت مستقل از دیگری عمل میکنند.
جمعبندی
در زبان سیشارپ، کلاسها به عنوان قالبهایی برای ساخت اشیاء استفاده میشوند. فرآیند ایجاد این اشیاء که به آن نمونهسازی گفته میشود، به کمک کلمه کلیدی new انجام میشود. با استفاده از کلاسها و نمونهسازی، میتوانیم ساختار و رفتارهای مختلفی را برای اشیاء تعریف کنیم و از آنها در برنامههای خود بهرهمند شویم.
در مقالهای که به "فراخوانی و نمونهسازی کلاس در سیشارپ" میپردازیم، علاوه بر مباحث اولیه، ارتباط با برخی مفاهیم پیشرفته نیز داریم. مقاله "Stack در سی شارپ" و "Queue در سی شارپ" به بررسی استفاده از ساختمانهای داده پرداخته و نحوه نمونهسازی آنها را توضیح میدهند. "Expression Func در سیشارپ" به تکنیکهای پیشرفته در برنامهنویسی میپردازد که شامل فراخوانی توابع و کلاسها است. "Throw در سی شارپ" نیز به موضوع مدیریت استثناها در فرآیند نمونهسازی کلاسها میپردازد. این مقالات به شما کمک میکنند تا فرآیند فراخوانی و نمونهسازی کلاسها را در سیشارپ به صورت کامل تر و جامعتر بشناسید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید