برنامه نویسی شی گرایی چیست؟ [تعریف ساده Object Oriented Programing]

برنامه نویسی شی گرا که بهش oop هم میگن ، یه نوع منطق برای برنامه نویسی هست که خیلی شبیه زندگی روزمره ماهم هست. هر چیزی که اطرافتون میبینید منطق شی گرایی بر گرفته شده. دلیل اصلیش هم اینه که مغز ما انسان ها بر اساس این منطق اطلاعات رو دسته بندی میکنه. در این نوع منطق دهن انسان اطلاعات رو مدلسازی میکنه و سعی میکنه با دسته بندی اون ها بهتر و عمیق تر اونا رو توی خودش جا بده. ولی این شی گرایی در اصل چی هست و در برنامه نویسی چه کاربردی داره؟ شی گرایی در برنامه نویسیبرنامه نویسی شی گرااحتمالا اگه تازه برنامه نویسی رو شروع کرده باشید عبارت شی گرایی به گوشتون خورده و شاید هنوز به صورت عمیق اون رو درک نکرده باشید. این مدل طراحی نرم افزار به جای توابع و توالی منطقی، بر اساس داده اطلاعات یا شی انجام می‌دهد.یادگیری رایگان پایتون آموزش رایگان سی شارپ دوره رایگان php آموزش رایگان javascriptیه شی رو میشه به عنوان داده‌ای در نظر گرفت که ویژگی‌ها و رفتار (attributes and behavior) خاصی داره.اگه توسعه دهندگان بخوان ، شی‌ها رو دستکاری کنن، از برنامه نویسی شی گرا استفاده میکنن. این روش برنامه نویسی برای توسعه برنامه های پیچیده و بزرگ خیلی به کار میاد.مثال برنامه نوسی شی گرا در نظر بگیرید که خودرو یه شیء هست. این شی یه سری ویژگی مثل رنگ ، وزن ، سرعت و... داره. این خصوصیات ویژگی های این خودرو هستن. به هر چیزی که دارای اطلاعات ، رفتار و یا خصوصیات خاصی باشه یه شیء گفته میشه. این ویژگی ها رو atribute هم میگن و هر رفتاری که این شی از خودش ممکنه بروز بده رو هم behavaior میگن.پس در مثال بالا خودرو یه شیء یا object است و خصوصیاتی مثل رنگ ، سرعت و... attribute و رفتار و یا اعمال این خودرو که بوق زدن و ترمز کردن و... هست brhavior این شی نامیده میشه.مفهوم کلاس (class) در شی گرایی چیست؟کلاس ها قالبی از اشیا هستنو مثلا پراید ، یک نمونه از کلاس خودرو هست. کلاس ها رفتار و خصوصیات اشیا رو در بر دارندو مثلا کلاس خودرو ویژگی هایی مثل سرعت و وزن و.. رو در بر داره. هر خودرویی همه ویژگی های این کلاس رو درون خودش داره.کلاس خودو در شی گراییچرا از برنامه‌نویسی شئ گرا استفاده می‌کنیم؟در حالت عادی شما کل برنامه را در قالب دستورات و توابع پشت سر هم می‌نویسید و برای تغییر هرچیزی از برنامه احتیاج دارید تا کل ساختار برنامه را بررسی کنید و موارد مورد نیاز را تغییر بدید.فرض کنید در حال نوشتن برنامه‌ای برای مدیریت خودروها هستید، شما برای هر مدل خودرو چند خط کد می‌نویسید،بعد تصمیم میگیرید که ویژگی ها خاصی به این خودرو ها اضافه کنید! در این مرحله شما باید بین این همه کد بگردید و خصوصیات جدید رو اضافه کنید.اگه از روش برنامه نویسی شیء گرا استفاده کنید ، خیلی ساده میتونید با اضافه کردن یک ویژگی به کلاس اصلی برنامه تون ، سایر اشیا که در این مثال ما خودرو هستند رو به این ویژگی مجهز کنید که به اون ارث بری میگن. در این روش دیگه نیاز نیست که خط به خط کد هاتون رو بخونید و برنامه رو کلا تغییر بدید.مفهوم ارث‌بری (Inheritance) در شی گراییبه زبان ساده، اشیا خصوصیات و رفتارها رو از کلاس والد خودشون ارث میبرن. هر شی در این کلاس بسازید ، ویژگی های اصلی رو دارد و میتونه این ویژگی ها رو به ارث ببره. به این مفهوم ارث بری میگن.مزایای برنامه‌نویسی شئ‌گرا چیست؟شاید در نگاه اول برنامه نویسی شی گرا سخت و پیچیده به نظر بیاد اما در دراز مدت کار شما رو خیلی راحت تر میکنه و مراحل تست و نگهداری نرم افزار هاتون بسیار ساده تر میشه. مزایای دیگه برنامه نویسی شی گرا :افزایش امنیت برنامهکاهش هزینه نگهداریقابلیت استفاده مجددتحلیل ساده‌تر برنامهمفهوم چندریختی در برنامه‌نویسی شی‌ءگراچندریختی نتیجه وراثته. به طور خلاصه چندریختی به برنامه‌نویس اجازه میده که متدهایی با نام یکسان را بر روی اشیای مختلف استفاده کند.مفهوم کپسوله‌سازی در برنامه‌نویسی شی‌ءگراهر شیء مجموعه‌ای از اطلاعاته که با آن به عنوان یک واحد مجزا برخورد می‌شه. درون این اشیا نیز اطلاعات به صورت متغیر و متد قرار دارند.متغیرهای داخل شیء به طور کلی مجزا باقی میمونن و این به آن معنیه که اشیا و متدها نمیتونن به همدیگه دسترسی داشته باشن. اشیا فقط از طریق استفاده از متدهایشون تأثیر میگیرن.برنامه‌نویسی شی‌ءگرا به صورت خلاصهبرنامه‌نویسی شی‌ءگرا اطلاعاتی را در واحدهای به نام شیء جمع می‌کنه.هر شی‌ء وهله منفردی از یک کلاس استکپسوله‌سازی، متغیرها و متدهای درون اشیا را به هم مرتبط می‌سازد و از آن‌ها حفاظت می‌کند.وراثت، امکان استفاده زیرکلاس‌ها از خصوصیات کلاس‌های والد را فراهم می‌سازد.چندریختی به اشیا و متدها امکان مدیریت موقعیت‌های مختلف با یک رابط منفرد را می‌دهد.