برنامه نویسی شی گرا (OOP) یک مدل برنامه نویسی کامپیوتری است که طراحی نرم افزار را حول داده ها یا اشیاء سازماندهی می کند تا توابع و منطق. یک شی را می توان به عنوان یک فیلد داده تعریف کرد که دارای ویژگی ها و رفتار منحصر به فرد است. OOP بر روی اشیایی که توسعه دهندگان می خواهند دستکاری کنند به جای منطق مورد نیاز برای دستکاری آنها تمرکز می کند. این رویکرد برای برنامه نویسی برای برنامه هایی که بزرگ، پیچیده و فعالانه به روز یا نگهداری می شوند، مناسب است. این شامل برنامه هایی برای ساخت و طراحی و همچنین برنامه های کاربردی تلفن همراه است. به عنوان مثال، OOP را می توان برای تولید نرم افزار شبیه سازی سیستم استفاده کرد. سازماندهی یک برنامه شی گرا نیز این روش را برای توسعه مشارکتی مفید می کند، جایی که پروژه ها به گروه ها تقسیم می شوند. مزایای اضافی OOP شامل قابلیت استفاده مجدد کد، مقیاس پذیری و کارایی است. اولین قدم در OOP جمع آوری تمام اشیایی است که یک برنامه نویس می خواهد دستکاری کند و نحوه ارتباط آنها با یکدیگر را شناسایی کند - تمرینی که به عنوان مدل سازی داده شناخته می شود. نمونههایی از یک شی میتواند از موجودیتهای فیزیکی، مانند یک انسان که با ویژگیهایی مانند نام و آدرس توصیف میشود، تا برنامههای رایانهای کوچک، مانند ویجتها، باشد. هنگامی که یک شی شناخته می شود، با کلاسی از اشیاء برچسب گذاری می شود که نوع داده های موجود در آن و هر دنباله منطقی را که می تواند آن را دستکاری کند، تعریف می کند. هر دنباله منطقی متمایز است
ساختار برنامه نویسی شی گرا چیست؟
ساختار یا بلوک های سازنده برنامه نویسی شی گرا شامل موارد زیر است:
(class) کلاس ها انواع داده های تعریف شده توسط کاربر هستند که به عنوان طرح اولیه برای اشیاء، ویژگی ها و روش های جداگانه عمل می کنند.
(object) اشیاء نمونه هایی از یک کلاس هستند که با داده های مشخصاً تعریف شده ایجاد شده اند. اشیا می توانند با اشیاء دنیای واقعی یا یک موجود انتزاعی مطابقت داشته باشند. وقتی کلاس در ابتدا تعریف می شود، توضیحات تنها شی ای است که تعریف می شود.
(method) متدها توابعی هستند که در داخل یک کلاس تعریف می شوند و رفتارهای یک شی را توصیف می کنند. هر متد موجود در تعاریف کلاس با ارجاع به یک شیء نمونه شروع می شود. علاوه بر این، زیر روالهای موجود در یک شیء، روشهای نمونه نامیده میشوند. برنامه نویسان از روش هایی برای قابلیت استفاده مجدد یا حفظ عملکرد در یک شیء در یک زمان استفاده می کنند.
(attribute) ویژگی ها در قالب کلاس تعریف می شوند و وضعیت یک شی را نشان می دهند. اشیاء دارای داده های ذخیره شده در قسمت ویژگی ها خواهند بود. صفات کلاس متعلق به خود کلاس است.
اصول اصلی شئ گرایی (oop) چیست؟
(Encapsulation) کپسوله سازی. این اصل بیان می کند که تمام اطلاعات مهم در داخل یک شی وجود دارد و فقط اطلاعات انتخاب شده در معرض دید قرار می گیرند. پیاده سازی و وضعیت هر شی به صورت خصوصی در یک کلاس تعریف شده نگهداری می شود. اشیاء دیگر به این کلاس دسترسی ندارند یا اختیار ایجاد تغییرات را ندارند. آنها فقط می توانند لیستی از توابع یا متدهای عمومی را فراخوانی کنند. این ویژگی پنهان کردن داده ها امنیت برنامه را بیشتر می کند و از خراب شدن ناخواسته داده ها جلوگیری می کند.
(Inheritance) انتزاع - مفهوم - برداشت. اشیاء فقط مکانیسم های داخلی را نشان می دهند که برای استفاده از اشیاء دیگر مرتبط هستند و هر کد پیاده سازی غیر ضروری را پنهان می کنند. کلاس مشتق شده می تواند عملکرد خود را گسترش دهد. این مفهوم می تواند به توسعه دهندگان کمک کند تا تغییرات یا اضافات بیشتری را در طول زمان به راحتی انجام دهند.
(Polymorphism) اشیا برای به اشتراک گذاشتن رفتار طراحی شده اند و می توانند بیش از یک شکل به خود بگیرند. برنامه تعیین می کند که کدام معنا یا کاربرد برای هر اجرای آن شی از یک کلاس والد ضروری است و نیاز به کد تکراری را کاهش می دهد. سپس یک کلاس فرزند ایجاد می شود که عملکرد کلاس والد را گسترش می دهد. چند شکلی به انواع مختلف اشیاء اجازه می دهد تا از یک رابط عبور کنند.
زبان های برنامه نویسی که از شئ گرایی پشتیبانی میکنند عبارت اند از: