برنامهنویسی شیگرا (OOP) یکی از اصولیترین و پرکاربردترین تکنیکهای برنامهنویسی است که به کمک آن میتوان ساختارهای پیچیدهی دنیای واقعی را بهصورت ساده و منطقی در قالب کدهای کامپیوتری پیادهسازی کرد. در سیشارپ، برنامهنویسی شیگرا بهصورت گسترده استفاده میشود و به توسعهدهندگان کمک میکند تا پروژههای بزرگ و پیچیده را بهصورت ماژولار و قابل مدیریت طراحی کنند.
مفهوم شیگرایی چیست؟
در برنامهنویسی شیگرا، به جای اینکه برنامه را فقط به صورت توابع و دستورات بنویسیم، سعی میکنیم اشیاء و مفاهیم واقعی مانند افراد، ماشینها، بانکها و... را به کد تبدیل کنیم. به عبارت ساده، شیگرایی روشی است که دنیای واقعی را به کمک اشیاء (Objects) و کلاسها (Classes) به یک مدل نرمافزاری تبدیل میکنیم.
در سیشارپ، کلاسها به عنوان یک قالب یا نقشه برای ساخت اشیاء به کار میروند. هر کلاس شامل ویژگیها (Properties) و رفتارها (Methods) است که به ما اجازه میدهد وضعیت و عملکرد اشیاء را کنترل کنیم.
مثال 1: شبیهسازی یک حساب بانکی
برای درک بهتر مفهوم شیگرایی، بیایید یک برنامه ساده برای شبیهسازی یک حساب بانکی بنویسیم.
تعریف کلاس حساب بانکی:
public class حساب
{
// ویژگیها (Properties)
public string شماره_حساب { get; set; }
public string مالک { get; set; }
public double موجودی { get; private set; }
// رفتارها (Methods)
// متد واریز پول به حساب
public void واریز(double مبلغ)
{
موجودی += مبلغ;
}
// متد برداشت پول از حساب
public bool برداشت(double مبلغ)
{
if (مبلغ > موجودی)
return false; // اگر موجودی کافی نباشد، برداشت انجام نمیشود.
موجودی -= مبلغ;
return true;
}
}
استفاده از کلاس حساب در برنامه:
public class Program
{
public static void Main(string[] args)
{
// ایجاد یک حساب بانکی جدید
حساب حساب_من = new حساب { شماره_حساب = "123456", مالک = "علی" };
// واریز مبلغ به حساب
حساب_من.واریز(500000);
Console.WriteLine("موجودی فعلی: " + حساب_من.موجودی);
// برداشت مبلغ از حساب
bool برداشت_موفق = حساب_من.برداشت(200000);
if (برداشت_موفق)
{
Console.WriteLine("برداشت موفق بود. موجودی جدید: " + حساب_من.موجودی);
}
else
{
Console.WriteLine("موجودی کافی نیست.");
}
}
}
توضیح:
در این مثال، یک کلاس حساب تعریف کردهایم که شامل ویژگیهایی مانند شماره حساب، مالک و موجودی است. همچنین دو رفتار تعریف شده که به ما اجازه میدهند پولی را به حساب واریز کنیم یا از آن برداشت کنیم. با استفاده از این ساختار، ما میتوانیم عملیاتهای مختلف بانکی را بهصورت ساده مدیریت کنیم.
مثال 2: مدیریت کتابخانه
حالا بیایید یک کتابخانه را شبیهسازی کنیم که شامل کتابها و نویسندگان است. این کتابخانه باید قابلیت امانت دادن و بازگرداندن کتابها را داشته باشد.
تعریف کلاس کتاب:
public class کتاب
{
// ویژگیها (Properties)
public string عنوان { get; set; }
public string نویسنده { get; set; }
public bool در_دسترس { get; private set; } = true;
// متد برای امانت گرفتن کتاب
public void امانت()
{
if (در_دسترس)
{
در_دسترس = false;
Console.WriteLine($"کتاب {عنوان} امانت گرفته شد.");
}
else
{
Console.WriteLine($"کتاب {عنوان} در حال حاضر در دسترس نیست.");
}
}
// متد برای بازگرداندن کتاب
public void بازگشت()
{
در_دسترس = true;
Console.WriteLine($"کتاب {عنوان} بازگردانده شد.");
}
}
استفاده از کلاس کتاب:
public class Program
{
public static void Main(string[] args)
{
// ایجاد یک کتاب جدید
کتاب کتاب_من = new کتاب { عنوان = "برنامهنویسی شیگرا در سی شارپ", نویسنده = "جان دو" };
// امانت گرفتن کتاب
کتاب_من.امانت();
// تلاش برای امانت گرفتن دوباره
کتاب_من.امانت();
// بازگشت کتاب
کتاب_من.بازگشت();
// امانت گرفتن مجدد پس از بازگشت
کتاب_من.امانت();
}
}
توضیح:
در این مثال، یک کلاس کتاب داریم که شامل عنوان، نویسنده و در دسترس بودن کتاب است. با استفاده از متد امانت میتوانیم کتاب را به امانت ببریم و با متد بازگشت، آن را به کتابخانه بازگردانیم.
اصول مهم در شیگرایی
1. کپسولهسازی (Encapsulation):
کپسولهسازی به این معناست که دادهها و توابع مربوط به یک شیء در داخل یک کلاس تعریف میشوند و از خارج کلاس قابل دسترسی نیستند، مگر اینکه به صورت public مشخص شده باشند. این ویژگی به مخفیسازی اطلاعات (Information Hiding) کمک میکند و از دسترسیهای ناخواسته به دادههای داخلی جلوگیری میکند.
2. وراثت (Inheritance):
در برنامهنویسی شیگرا، وراثت به ما اجازه میدهد که یک کلاس جدید ایجاد کنیم و از ویژگیها و رفتارهای یک کلاس دیگر استفاده کنیم. این ویژگی به ما کمک میکند که کد خود را سادهتر و بهینهتر بنویسیم.
3. چندریختی (Polymorphism):
چندریختی به این معناست که یک متد یا رفتار میتواند در کلاسهای مختلف به شکلهای مختلفی پیادهسازی شود. این ویژگی به ما امکان میدهد که از یک متد به صورت عمومی استفاده کنیم، ولی پیادهسازی آن را برای هر کلاس متفاوت تنظیم کنیم.
جمعبندی
برنامهنویسی شیگرا در سیشارپ یکی از ابزارهای مهم برای توسعه نرمافزارهای بزرگ و پیچیده است. با استفاده از کلاسها و اشیاء، میتوانیم کدهای خود را ساختارمند، خوانا و قابل نگهداری بنویسیم. همچنین اصولی مانند کپسولهسازی، وراثت و چندریختی به ما کمک میکنند که کدهای منعطفتر و کارآمدتری بنویسیم.
مقاله "مثال برنامهنویسی شیگرا با استفاده از سیشارپ" با مقاله دیگر مرتبط میشود:
"Polymorphism در شیگرایی" - این مقاله به یکی از اصول شیگرا پرداخته و به تفصیل میتواند توضیح دهد که چگونه از Polymorphism در برنامهنویسی شیگرا استفاده کنیم.
با مطالعهی این مقاله، شما میتوانید دانش شیگرایی خود را در زمینه سیشارپ تکمیل کنید.
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید