شی گرایی به زبان ساده ( Part 1 )

سلام دوستان . من امیرحسین قربانی هستم و تصمیم دارم که مفهوم کلی شی گرایی در برنامه نویسی رو براتون یک بار برای همیشه تو دو مقاله وابسته به هم جا بندازم که اصلا این نوع برنامه نویسی چی هست و کاربردش چیه . خوشحال میشم تو این دو بخش از مقاله با من همراه باشید.شی گراییشی گرایی اصلا چی هست ؟تا قبل از این که زبان های سطح بالایی مثل c# , java , ... توسعه پیدا کنه ( یعنی حدودا قبل دهه 1980 ) ، برنامه نویسا با زبان های سطح پایین تری مثل اسمبلی، فورترن و C کار میکردن و برنامه هاشون رو توسعه میدادن. این زبان ها ، زبان های پروسیجری یا پروسه ای بودن و دستورات پشت سر هم نوشته و اجرا میشدن. ( برنامه نویسا نهایتا میتونستن با تعریف استراکچر و یا توابع ، دستورات برنامه نویسی رو قابل فهم تر کنن )میشه گفت حدودا بعد از دهه 1980 بود که توسعه دهنده ها کم کم به فکر این افتادن که زبان هایی رو توسعه بدن که به درک انسان و محیط اطرافمون نزدیک تر باشه تا کار یاد گیری و مهارت برنامه نویسی رو راحت تر کنن .پس از اونجا بود که ایده زبان های برنامه نویسی شی گرا شکل گرفت ! امروزه زبان های سطح بالای زیادی معرفی شده که از اصول شی گرایی پیروی میکنن و همین طور بازار کار بسیار بزرگی رو هم به خودشون اختصاص دادن . از جمله این زبان های میشه به C# , Java , Php و ... اشاره کرد .البته کسایی که برنامه نویسن و تجربه کاری نسبتا بالایی دارن بیشتر از اصطلاح OOP برای زبان های شی گرا استفاده میکنن که مخفف کلمات Object Oriented Programing به معنی همین شی گرایی هست. تا اینجا مختصری رو خواستم بگم که فقط یه دید کلی پیدا کنین نسبت به این نوع زبان ها و حالا میخوام خود شی گرایی رو براتون به زبون ساده توضیح بدم. پس با من همراه باشید ;)تو حوضه برنامه نویسی شی گرا ، به طور کلی ما با دو موضوع خیلی سروکار داریم . یکی class ( کلاس ) و اون یکی object ( شی ) هست . اینو بدونین که هر کدوم این ها بدون اون یکی بی معنیه و کاربردی نداره .با یه مثال توضیح میدم . فرض کنین که میخوایم خودرویی رو بسازیم و ازش مثلا 1000 تا تولید کنیم. خب ، توی نگاه اول ما نیاز به یک نقشه داریم که بر اساس اون نقشه خودرو رو بسازیم . فرض کنید ما نقشرو طراحی کردیم و مشکلی هم نداره . اما آیا میشه از اون نقشه استفاده کرد ؟! میشه سوارش شد ؟! نه !! ما نقشرو طراحی کردیم که وقتی دادیمش به کارخونه مورد نظر ، کارخونه بر اساس اون نقشه خودرو هامون رو تولید کنه و ما در نهایت از محصول تولید شده ( که از روی اون نقشه هست ) استفاده خواهیم کرد .دوستان تو برنامه نویسی شی گرا هم همین روند هستش تقریبا . کلاس ها ، حکم همون نقشه رو دارن و اشیایی که از روی اون کلاس ها ساخته میشن حکم محصول تولید شده و نهایی رو دارن. یعنی ما یکبار کلاس خودمون رو تعریف میکنیم و بی نهایت بار میتونیم از همون کلاس ، object بسازیم . برگردیم به دنیای اطراف خودمون . اشیایی که ما باهاشون سروکار داریم ، هرکدوم دارای ویژگی ها و رفتار های منحصر به فرد خودشون هست. برای مثال همون کارخونه خودرو سازیمون رو در نظر بگیرین . فرض کنین که از این کارخونه ( که مثلا ماشین هایی با برند X تولید میشه ) ،یک سری ماشین X مدل سواری و یک سری هم ماشین X مدل وانت تولید بشه . تو نگاه اول هر دو خودرو هستن ، 4 چرخ دارن ، از یک برند هستن و هر دو شون برای نقل مکان استفاده میشن . اما با این که از نظر رفتاری مشابه هستن ولی از نظر ویژگی و صفات کاملا متفاوت هستن . یکی برای جابجایی مسافر ساخته شده و اون یکی برای جابجایی بار . توی برنامه نویسی شی گرا هم میشه گفت همین روند هستش . اشیایی که ساخته میشن از ویگی ها یا صفات ( Attribute ) و هم از رفتار ها ( Behavior ) برخوردار هستن .خب دوستان . به آخر بخش اول این مقاله رسیدیم و ادامه مفهوم شی گرایی رو ترجیح میدم تو بخش دوم منتقل کنم که هم خسته نشین هم درکش آسون تر باشه براتون و هم از طولانی شدن مقاله جلوگیری کرده باشم . ممنون که تا اینجا همراه بودین ، موفق باشین .