یک شی میتواند یک موجودیت فیزیکی باشد که در جهان وجود دارد مثل کتاب و میوه

یک شئ میتواند یک موجودیت غیر فیزیکی باشد مثل کار یا زمان و یا هر چیز دیگری که نتوان آن را لمس کرد ولی میتوان آن را توصیف کرد

 

هر شئ 2 گروه از مشخصات را دارا میباشد :

صفات : صفات ویژگیهای یک شی را بیان می کند. در واقع یک صفت یک ویژگی از یک شی است مانند صفت نام برای یک فرد.

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

 

اصول اصلی شئ گرایی :

 

1 - Abstraction یا تجریدسازی : اصل تجریدسازی که از اصول اولیه شئ گرایی میباشد به معنی کلی نگری به یک سیستم جهت کاهش پیچیدگیهای آن میباشد

    (شی انتزاعی = شی واقعی - جزئیات)

 

2 : Encapsulation یا کپسوله سازی : یکی از اوصول مهم شئ گرایی کپسوله سازی یا مخفی سازی میباشد .

کپسوله سازی میگوید باید برخی صفات و رفتار یک شئ را از دید دیگر اشیا پنهان کرد

کپسوله سازی باعث میشود اشیائ مختلف بدون اینکه از جزئیات یکدیگر مطلع باشند بتوانند با هم کار کنند ..

در کپسوله سازی یک مکانیسم برنامه نویسی است که کدها و داده ها را در یکجا قرار میدهد تا از استفاده نادرست و تداخل خارجی در امان باشند

 

3 - Inheritance یا ارث بری : چنانچه یک شئ علاوه بر ویژگی های خود دارای ویژگی های دیگری هم باشد از ارث بری استفاده میشود ..

برای مثال سیب یک میوه است پس علاوه بر ویژگی های خود ، ویژگی های کلی میوه را نیز به ارث میبرد .

 

4 - Aggregation یا تجمع سازی : در صورتی که یک شئ ویژگی هایی شئ دیگر را نداشته باشد ولی نیاز به استفاده از آنها داشته باشد . میتواند از طریق تجمع از آنها استفاده کند

برای مثال رابطه تجمع مثل رابطه ماشین با تایرهای خود میباشد ، با اینکه ماشین خصوصیات تایر را ندارد ولی برای حرکت نیازمند استفاده از آنها میباشد ..

 

 

5 - پیمانه ای بودن (Modularity) : روش برنامه نویسی " پیمانه ای " به این صورت است که کل حل مساله به بخشهای کوچکتر –که درعین حال خود مساله های دیگری هستند که باید بصورت جزیی حل می شوند – تقسیم می شود هر بخش با صورت مساله خود ( که کوچکتر از مساله اصلی است ) جداگانه حل می شود و در نهایت این حلها با هم ادغام شده و کل حل مساله را تشکیل می دهند.

 

اصل فرعی شی گرایی:

چند ریختی (Polymorphism):