در نظر بگیرید برای رانندگی مجبور بودید از تمام نکات فنی و همه اتفاقاتی که در موتور و پیستونها اتفاق میافتد با خبر بودید واقعاً گیج کننده میشد، اینطور نیست! در واقع برنامه نویسی ابتدا بدین صورت بود و فقط افراد خاصی میتوانستند این کار را انجام دهند ولی با ظهور شی گرایی همه چیز عوض شد. حالا ببینیم یک شی دقیقاً چکار میکند. اول اینکه یک شی طوری طراحی شده که برنامه نویسی همانند دنیای اطراف ما بنظر برسد. یک شی همه چیزهای مربوط را دور هم جمع میکند مثلا توابع ، زیرروالها، متغییرها و حتی پایگاه داده مربوط همه و همه در یک جا و به صورت یک موجودیت. کار دیگر شی این است که جزئیات را از دید شما پنهان میکند به طوری که شما بدون آن که از ماهیت درونی آنها آگاه باشید میتوانید به راحتی از آنها استفاده کنید. همانطور که بدون آنکه از جزئیات درونی و مدارهای یک تلوزیون باخبر باشید با آن کار میکنید و این به یکی از آرزروهای دیرینه برنامه نویسان یعنی سادگی و عدم پیچیدگی پاسخ داد. حال بیایید ببینیم یک شی چگونه این کارها را انجام میدهد.