اصول برنامه نویسی شی گرا (oop)
۱- تجرید یا انتزاع (Abstraction)
۲- كپسوله سازی (Encapsulation)
۳- ارث بری (Inheritance)
۴- چند ریختی (Polymorphism)
۱- تجرید یا انتزاع (Abstraction)
در oopما سه مفهوم كلاس (class) و موجودیت (object) و نمونه (instance) داریم. همه موجودیتها در یك الگو شی گرا باید به صورت انتزاع یا Abstract باشد. یعنی اینكه در دنیای واقعی این موجودیت وجود نداشته باشد و فقط در ذهن ما تداعی گردد.
در واقع وقتی ما كلمه انسان را میشنویم مدلی در ذهن ما شكل میگیرددر واقع ما انتزاعی فكر كرده ایم . هدف در شی گرایی این است كه این مفهوم و طرز فكر را پیاده سازی نمائیم.
۲- كپسوله سازی (Encapsulation)
این مفهوم خیلی خیلی نزدیك به مفهوم جعبه سیاه (black box) میباشد. در واقع ما باید موجودیتها یا كلاسها را به نحوی پیاده سازی كنیم كه فقط ورودیها و خروجیها برای اعضای بیرونی قابل نمایش باشند و اعضای داخلی كلاس محافظت شوند.
برای مثال یك اتومبیل را فرض كنید همه ما میدانیم این اتومبیل دارای فرمان و گاز و … هست و میدانیم در صورت استفادهاز آنها چه اتفاقاتی رخ میدهد ولی این كه این اتفاقات چگونه انجام میشود را اطلاع نداریم. مثلا اگر گاز بدهیم میدانیم ماشین جلو میرود ولی این كه چه اتفاقی میافتد تا ماشین جلو برود نمیدانیم و برای ما هم مهم نیست.
۳-ارث بری (Inheritance)
توضیحات این قسمت در سری آموزش بعدی آورده میشود فقط این مورد را در ارث بری باید بدانیم كه ارث بری با اهداف زیادی اضافه شده است ولی مهم ترین آنها به این بر میگردد كه قابلیت سلسله مراتب بین موجودیتها را به ما میدهد و مورد بعدی اینكه قابلیت بازنویسی یك موجودیت را به ما میدهد كه بعدا كامل بحث میشود.
۴-چند ریختی (Polymorphism)
این مورد هم شبیه به ارث بری است و در زمان خودش كامل آموزش داده مشود. فقط اگر بخواهیم توضیح مختصری بدهیم اینكه این قسمت تاكید بر روی این دارد كه ما به موجودیتها و كلاسها قابلیت بدهیم.
مثلا یك انسان، پرنده و خزنده را در نظر بگیرید همه قابلیت حركت دارند ولی نحوه پیاده سازی آنها متفاوت میباشد . انسان راه میرود و پرنده پرواز میكند.