'''برنامهنویسی شیءگراشیگرا''' (به [[زبان انگلیسی|انگلیسی]] ''Object-Oriented Programming'' مخفف:OOP) یک شیوه برنامهنویسی است که ساختار یا بلوک اصلی اجزای آن، [[شیءشی (علوم رایانه)|شیءهاشیها]] میباشند. در واقع در این شیوه برنامه نویسی، برنامه به شیءشی گرایش پیدا میکند. به این معنا که [[دادهها]] و توابعی که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، [[کپسولهسازی (علم رایانه)|کپسوله]] میشوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در دادههای درون آن شی را ندارند. بهطور مثال [[حساب بانکی]] شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را میدهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد.<ref>http://de.wikipedia.org/wiki/Objektorientierte_Programmierung</ref> از دیگر ویژگیهای برنامهنویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایمهای برنامهنویسی است.
فلسفهای که منجر به شکلگیری ی زبانهای شی گرا شد، عبارت بود از این واقعیت که نحوهٔ عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوه ییشیوهای شی گراست، از همین روی میبایستی زبانی تعریف میشد که همین شیوه را مبنای کار خود قرار داده و بازتولید میکرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در [[زبانهای برنامه نویسی]] نیز میبایستی این اصول کلی برقرار میشد.<ref>Christian Ullenboom, Java ist auch eine Insel, 10. Auflage, ISBN 383621802X</ref> تا به این شکل، برنامه نویس بتواند با بهرهگیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شیهای مختلفی را تعریف نموده، این شیها را در ارتباط با یکدیگر قرار داده و از شیهای پویای تولید شده برای [[حل مسئله]] ی پیش روی استفاده نماید. امروزه اکثر [[زبانهای دستوری]] برنامهنویسی از فنون شیءگراییشیگرایی پشتیبانی میکنند. زبانهایی مانند [[جاوا (زبان برنامه نویسی)|جاوا]]، [[سی++]]، [[سی شارپ]]، [[دلفی (زبان برنامه نویسی)|دلفی]] از جمله زبانهای شیءگراشیگرا هستند. حتی بسیاری از [[زبانهای روال گونه]] که ساختار برنامهها در آنها بلوکهایی با نام پروسیجر است امروزه از فنون شیءگراییشیگرایی نیز پشتبانی میکنند. زبانهای [[سی++]] <ref>{{یادکرد کتاب|عنوان=برنامه سازی پیشرفته با ++C|نام خانوادگی=دکتر بابک بشری راد|نام=|ناشر=ناقوس|سال=1394|شابک=۹۷۸-۹۶۴-۳۷۷-۷۴۶-۳|مکان=تهران|صفحات=}}</ref> و [[پیاچپی]] از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده میشوند. در این پارادایم برنامه نویسی، دید برنامه نویس به سیستم دید شخصی است که سعی مینماید با پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید. (مفهوم مدیریت دیداری)