برنامه نویسی شی گرا (یا OOP) پارادایم برنامه نویسی است که در آن برنامه ها به جای توابع یا منطق ، در اطراف اشیاء نوشته و ساخته می شوند. در اینجا ، اشیاء به عنوان فیلد داده تعریف می شوند که دارای ویژگی ها و رفتارهای منحصر به فرد هستند. آنها حاوی داده هایی در قالب ویژگی ها و رویه ها در قالب روش ها هستند. رویه های شیء می توانند به داده های موجود در یک شی دسترسی پیدا کرده و تغییر دهند.
بسیاری از زبانهای OOP وجود دارند که محبوب ترین آنها class است ، جایی که اشیاء نمونه ای از یک کلاس خواهند بود. کلاس یک ظرف برای داده ها و رویه ها است ، همچنین به عنوان اعضای داده و توابع عضو شناخته می شود. بگذارید نمونه ای از یک شی را به عنوان ماشین در نظر بگیریم. یک ماشین دارای ویژگی هایی مانند رنگ ، نام تجاری ، ظرفیت سوخت و غیره است و دارای روش هایی برای نشان دادن رفتار یک اتومبیل مانند استارت ، سرعت بخشیدن ، شکستن و غیره است. کلاس یک طرح از صفات و روشهاست و فضایی را اشغال نمی کند ، مگر اینکه یک شی برای آن کلاس ساخته شود.
مثال:
class car
{
char name[20]; // name and colour are attributes
char colour[20];
public void start(){} //start is a method
};
void main()
{
car c1; //c1 is an object
}
اهداف برنامه نویسی شی گرا برای اجرای در برنامه نویسی ، موجودات دنیای واقعی مانند وراثت ، چندشکلی ، محاصره کردن و غیره را هدف قرار می دهد که در جزئیات خواهیم دید. هدف اصلی OOP اتصال جمعی داده ها و کارکردهایی است که بر روی آنها کار می کند ، به گونه ای که این داده فقط با آن عملکرد قابل دسترسی است.
در ادامه با ما در شتابان هاست همراه باشید.
چهار اصل اصلی برنامه نویسی شی گرا عبارتند از محاصره کردن ، انتزاع ، وراثت و چندشکلی.
اتصال داده ها و روش ها به یک واحد محصورسازی (encapsulation) گفته می شود. محصور کردن وقتی انجام می شود که هر شیء در داخل کلاس حالت خود را خصوصی نگه دارد. داده های داخل این واحد توسط اشیاء خارجی قابل دسترسی نیست و فقط آن دسته از توابع موجود در این واحد قادر به دستیابی به آن هستند. بنابراین ، شی با کمک روشهای خود وضعیت خود را مدیریت می کند و برای برقراری ارتباط با این شیء ، به کمک روش های عمومی این کلاس نیاز خواهیم داشت.
انتزاع فرمت محصورسازی است. این بدان معناست که ضمن پنهان کردن جزئیات داخلی اجرای ، فقط اطلاعات لازم را به جهان خارج ارائه می دهد. این فقط عملکردهای مناسب برای اشیاء دیگر را نشان می دهد. مزیت این امر این است که ما می توانیم پیاده سازی را بدون تأثیرگذاری در کلاس تغییر دهیم ، زیرا رابط روش یکسان است.
بگذارید نمونه ای از ماشین حساب را بدست آوریم ، که ورودی را از ما می گیرد ، و روی فشار یک دکمه ، خروجی مورد نظر را به ما می دهد ، در حالی که جزئیات داخلی از چگونگی رسیدن آن پاسخ را برای ما تلف نمی کند.
غالباً ، اشیاء از نظر عملکرد مشابه هستند ، بخشی از منطق را به اشتراک می گذارند اما در بقیه متفاوت هستند. بنابراین چگونه می توانیم از منطق مشترک استفاده مجدد کنیم و منطق متفاوتی را از هم جدا کنیم؟ این می تواند با وراثت حاصل شود. در ارث ، ما یک کلاس جدید به نام کلاس کودک ایجاد می کنیم که از کلاس موجود به نام کلاس والدین گرفته می شود ، بنابراین یک سلسله مراتب کلاس ها را تشکیل می دهیم. کلاس کودک از قسمت داده ها و روش های مورد نیاز خود از کلاس والدین استفاده می کند و عملکرد منحصر به فرد خود را به تنهایی پیاده سازی می کند.
به عنوان مثال ، وسیله نقلیه می تواند کلاس والدین باشد ، از این طریق می توان کلاس های کودکانی مانند دوچرخه و اتومبیل را استخراج کرد. آنها از نظر ویژگیهای مشترک در توانایی سوار شدن در سوخت و حمل مسافر با یکدیگر تفاوت دارند ، اما در تعداد مسافرانی که می توانند حمل کنند و چنین خواص دیگری متفاوت است.
پلی مورفیسم توانایی گرفتن بیش از یک شکل است. فرض کنید یک کلاس والدین داریم و چند کلاس کودک آن. حال می خواهیم از خصوصیات هم کلاسهای والدین و هم کودک استفاده کنیم ، پس چگونه می توان به نتیجه رسید؟ این کار با استفاده از پلی مورفیسم انجام می شود. در پلی مورفیسم موجودات انتزاعی به چند روش اجرا می شوند. این راهی را برای مصرف یک کلاس دقیقاً مانند کلاس والدین فراهم می کند ، به گونه ای که هیچ اختلافی با مخلوط کردن نوع کلاس ها وجود ندارد و هر کلاس کودک همچنان روش های خود را به شکلی که بوده است حفظ می کند. این کار با استفاده مجدد از رابط والدین انجام می شود تا کلاس کودک بتواند این روش ها را در نسخه خود پیاده سازی کند.
امیدوارم این مقاله برای شما مفید بوده باشد.
ما را در شتابان هاست دنبال کنید.