از جمله مزایای برنامه نویسی شی گرا نسبت به برنامه نویسی رویه ای می توان به اجرای آسان تر و سریع تر برنامه، ایجاد ساختاری روشن برای برنامه، جلوگیری از تکرار بی مورد کدها و امکان استفاده مجدد از کدها در برنامه ها اشاره کرد.
دو مفهوم مهم در برنامه نویسی شی گرا، کلاس ها و اشیا هستند. یک کلاس قالبی برای اشیا و یک شی نمونه ای از یک کلاس است. هنگامی که شی ایجاد می گردد، تمامی ویژگی ها و رفتارها را از کلاس به ارث می برد. به عنوان مثال اگر موجودیت میوه را به صورت یک کلاس در نظر بگیریم، این کلاس می تواند ویژگی هایی مانند نام، رنگ و وزن داشته باشد و همچنین شامل توابعی برای اجرای عملیات مورد نظر بر روی این ویژگی ها باشد.