*برنامه نویسی شی گرا --> یکی از شیوههای برنامه نویسی است که با الهام از دنیای واقعی است
اشیا بیرون کامپیوتر را وارد دنیای کامپیوتر میکنیم.
در برنامه نویسی شی گرا تمرکز بر روی * اشیا , * روابط بین ان ها( اشیا ) است.
( تعریف صحیح شی + تعریف صحیح روابط بین اشیا ) --> مفهموم شی گرایی
-------------------------------------------------------------------------------------------------------------------------------------------------------
*هر شی میتواند یک سری ویژگی ها( attribute / propeerty ) , و یک سری رفتارها (فعلها - method / function ) داشته باشد
*روابط بین اشیا میتواند از نوع بودن , و یا داشتن باشد.
مثال
--> خودرو یک وسیله نقلیه است --> ازنوع بودن
--> درب خودرو --> از نوع داشتن برای خودرو است.
------------------------------------------------------------------------------------------------------------------------------------------------------
هر object شامل{
1.attribute( property/ state )
2.Method( function ) }
------------------------------------------------------------------------------------------------------------------------------------------------------
کلاس --> یک طبقه بندی از اشیا مشابه است که دارای ساختار ویژگیها ( property ) , رفتار ( behaviours ) است.
کلاس را نمیتواند به صورت مستقیم اشاره کرد.
شی را میتوان با ان اشاره کرد - خصوصیا ت ان مشخص است
========================================================================================
برنامه نویسی رویه ایی ( Procedural )
1- program is divided into Function
2- Top-Down Design (از بالا به پایین --> یعنی کارها را تقسیم میکنیم و سپس انها را انجام میدهیم)
3- Limited code reuse
4- Complex Code ( کد نویسی سخت )
5- Global data focused
6- No Access Control mechanism
7- sepration of data & operations
------------------------------------------------------------------------------------------------------------------------------------------------------
برنامه نویسی OOP
1- program is divided into objects
2- Bottom-up Design ( از پایین به بالا --> یعنی ابتدا تشخص موجودیتها و سپس تشخیص رابطه بین موجودیت ها)
3- code reuse ( کدها مجدد قابل استفاده در پروژههای دیگر هستند --> Inheritance )
4- Complex Desing ( طراحی سخت )
5- Proteced data ( more secure )
6- Access modifiers (Encapsulation )
7- Data & Functions are together (class) --> در نهایت تشکیل یک نوع data type جدید