مفاهیم برنامه نویس شی گرا یا همون OOP
همه ما برنامه نویسا راجع به شی گرایی و object oriented programming چیزهایی خوندیم و میدونیم.
من خودم توی کدهام معمولا کلاس میسازم و موقع استفاده هم آبجکتش رو میسازم و ازش فانکشن هاش استفاده میکنم. این همون شی گراییه؟ مفهوم خاصی که لازم باشه راجع به OOP دونست رو کسی میدونه؟ احساس میکنم یک قواعد خاصی باید داشته باشه.
یا کلا همینه فقط؟ یعنی همینکه کلاس بسازیم یعنی شی گرا داریم کد میزنیم؟
واقعا خیلی عالی میشه بپرس دسته بندی برنامه نویسی هم برای جامعه برنامه نویسا ایجاد کنه.
٢ پاسخ
شی گرایی (OOP) یک مفهوم گستردهتر از فقط ایجاد کلاسها و شیها (آبجکتها) در برنامه نویسی است. درست است که ساختن کلاسها و استفاده از شیها بخشی از شی گرایی است، اما این تنها یک جنبه از آن است.
مفاهیم اصلی شی گرایی عبارتند از:
1. **تعریف کلاس (Class Definition):**
تعریف کلاسها که شامل ویژگیها (متغیرها) و رفتارها (متدها یا توابع) میشود. کلاسها مانند قالبهایی هستند که تعیین میکنند چه ویژگیها و عملکردهایی در یک شی وجود دارد.
2. **شی (Object):**
شی یک نمونه از یک کلاس است و ویژگیها و عملکردهای مشخص شده در کلاس را دارا میباشد.
3. **انتزاع (Abstraction):**
این مفهوم به این اشاره دارد که یک کلاس باید اطلاعات مربوط به ویژگیها و عملکردهای مهم خود را برای خارجیها منتشر کند و جزئیات پیادهسازی را مخفی نگه دارد.
4. **پلیمورفیسم (Polymorphism):**
این ویژگی به این اشاره دارد که یک عملکرد یا ویژگی میتواند با ویژگیهای مختلف در کلاسهای مختلف تعریف شود و در زمان اجرا به تعداد و نوع آرگومانهای ورودی خود تناسب یابد.
5. **ارثبری (Inheritance):**
این مفهوم به این اشاره دارد که یک کلاس میتواند ویژگیها و عملکردهای یک کلاس دیگر را به ارث ببرد و بر اساس آنها ویژگیها و عملکردهای خاص به خود اضافه کند.
از طریق این مفاهیم، برنامه نویسان میتوانند کد خود را به صورت سازمانیافتهتر و قابل توسعهتر طراحی کنند. این استفاده از مفاهیم شی گرایی، امکاناتی چون بازاستفاده کد، انتزاع و مدیریت مفهومی را در برنامهها فراهم میکند.
شی گرایی (Object-Oriented Programming) یک روش برنامهنویسی است که بر اساس مفهوم اشیاء (Objects) و تعاملات بین آنها بنا شده است. ایجاد کلاسها و استفاده از آنها در کد، تنها یک جنبه از شی گرایی است و برخی از قواعد و مفاهیم دیگر نیز در این روش وجود دارد.
در شی گرایی، کلاسها به عنوان الگوهایی برای ایجاد اشیاء (آبجکتها) استفاده میشوند. هر کلاس میتواند ویژگیها (متغیرها) و رفتارها (متدها) را تعریف کند. وقتی یک شیء از یک کلاس ایجاد میشود، میتوانید از ویژگیها و رفتارهای آن استفاده کنید.
به عنوان مثال، شما میتوانید یک کلاس به نام "خودرو" بسازید که ویژگیهایی مانند "سرعت" و "رنگ" را داشته باشد و رفتارهایی مانند "شتاب دادن" و "توقف کردن" را انجام دهد. وقتی یک شیء از این کلاس ایجاد میشود، میتوانید از ویژگیها و رفتارهای آن استفاده کنید، مانند تنظیم سرعت خودرو یا توقف آن.
به طور کلی، شی گرایی شامل مفاهیمی مانند انتزاع (Abstraction)، پلیمورفیسم (Polymorphism)، وراثت (Inheritance) و تعامل بین اشیاء است. این مفاهیم به شما امکان میدهند کدی را بنویسید که قابلیت تغییر و توسعه بیشتری داشته باشد و بهتر قابل درک و استفاده باشد.
بنابراین، تنها ساختن کلاس و استفاده از آن در کد، تنها یک جنبه از شی گرایی است و برای درک کامل این روش برنامهنویسی، مفاهیم و قواعد دیگری مانند انتزاع، پلیمورفیسم و وراثت نیز باید مورد بررسی قرار گیرند.
ممنون از شما.