برای برنامه نویسی شی گرا در هر زبانی ابتدا باید مفهوم اصلی شی گرایی را درک کرد.
شی گرایی ابزار و یا خصوصیت خاص یک زبان برنامه نویسی نیست؛ حتی در زبانی مثل C هم که از امکانات شی گرایی برخوردار نیست، باز هم امکان برنامه نویسی شی گرا وجود دارد. نمونه ای بارز از یک همچین برنامه هایی کتابخانه ی معروف GTK است که به صورت شی گرا در C پیاده سازی شده است.
در حقیقت شی گرایی نوعی طرز تفکر خاص در پیاده سازی برنامه هاست. به این صورت که برنامه نویس با قسمت های مختلف برنامه اش دقیقا همانند اشیای عادی در دنیای حقیقی رفتار میکند، و سعی میکند با کنار هم قرار دادن آن ها برنامه ی خود را به سرانجام برساند.