کلاس و شی در برنامهنویسی شیءگرا چه مفهومی دارند
خلاصه
1404/05/23
در برنامهنویسی شیءگرا (Object-Oriented Programming یا OOP)، کلاس و شیء دو مفهوم اساسی و مرتبط هستند که به درک و سازماندهی کد کمک میکنند. به طور خلاصه: **کلاس (Class):** *

در برنامهنویسی شیءگرا (Object-Oriented Programming یا OOP)، کلاس و شیء دو مفهوم اساسی و مرتبط هستند که به درک و سازماندهی کد کمک میکنند. به طور خلاصه:
**کلاس (Class):**
* **تعریف:** کلاس یک الگو، طرح اولیه یا نقشه برای ایجاد اشیاء است. میتوان آن را به عنوان یک نوع داده تعریف کرد که مشخص میکند یک شیء چه ویژگیهایی (attributes) و چه رفتارهایی (methods) خواهد داشت.
* **شبیه به قالب:** مانند یک قالب شیرینیپزی، کلاس مشخص میکند که یک شیء چگونه باید باشد.
* **اجزاء:**
* **ویژگیها (Attributes/Properties):** متغیرهایی هستند که دادههای مربوط به یک شیء را نگهداری میکنند. به عنوان مثال، یک کلاس `Person` میتواند ویژگیهای `name` (نام)، `age` (سن) و `address` (آدرس) داشته باشد.
* **متدها (Methods/Functions):** توابعی هستند که رفتارهای یک شیء را تعریف میکنند. به عنوان مثال، یک کلاس `Car` میتواند متدهای `start()` (روشن کردن)، `accelerate()` (شتاب گرفتن) و `brake()` (ترمز کردن) داشته باشد.
* **نکته:** کلاس به خودی خود یک شیء نیست، بلکه فقط یک تعریف یا نقشه است.
**شیء (Object):**
* **تعریف:** شیء یک نمونه (instance) واقعی از یک کلاس است. زمانی که یک کلاس را ایجاد میکنید، در واقع یک نوع داده جدید تعریف میکنید. سپس میتوانید اشیایی از این نوع ایجاد کنید.
* **شبیه به شیرینی:** مانند شیرینیای که از قالب شیرینیپزی ایجاد میشود، شیء یک موجودیت مستقل است که بر اساس تعریف کلاس ساخته شده است.
* **اجزاء:**
* **مقادیر ویژگیها:** هر شیء دارای مقادیر خاص خودش برای ویژگیهای تعریف شده در کلاس است. به عنوان مثال، یک شیء از کلاس `Person` ممکن است `name="Ali"`, `age=30`, و `address="Tehran"` داشته باشد.
* **قابلیت اجرای متدها:** هر شیء میتواند متدهای تعریف شده در کلاس را اجرا کند.
**مقایسه و مثال:**
فرض کنید میخواهید یک برنامه برای مدیریت اطلاعات دانشجویان بسازید.
* **کلاس `Student`:**
* **ویژگیها:** `name` (نام)، `student_id` (شماره دانشجویی)، `major` (رشته تحصیلی)، `gpa` (معدل)
* **متدها:** `enroll_in_course()` (ثبت نام در درس)، `calculate_gpa()` (محاسبه معدل)، `display_info()` (نمایش اطلاعات)
* **شیء `student1`:** یک نمونه از کلاس `Student` با مقادیر خاص خودش.
* `name = "Reza"`
* `student_id = "12345"`
* `major = "Computer Science"`
* `gpa = 3.8`
* این شیء میتواند متدهای `enroll_in_course()`، `calculate_gpa()` و `display_info()` را اجرا کند.
* **شیء `student2`:** یک نمونه دیگر از کلاس `Student` با مقادیر متفاوت.
* `name = "Sara"`
* `student_id
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- چه تفاوتی بین متغیرهای محلی و سراسری وجود دارد
- مفهوم JSON و کاربرد آن در انتقال داده چیست
- تفاوت بین REST و SOAP در طراحی API چیست
- Nodejs چگونه کار میکند
- تفاوت بین Java و Kotlin در توسعه اپ موبایل چیست
- جاوا اسکریپت چه نقشی در توسعه وب دارد
- زبان Python در چه حوزههایی کاربرد دارد
- تفاوت زبان برنامهنویسی C و C چیست
- Continuous Integration چه مزایایی دارد
- نقش واحد تست Unit Test در توسعه نرمافزار چیست
- خطای منطقی در برنامهنویسی چیست
- چه تفاوتی بین کامپایلر و مفسر وجود دارد
- الگوهای طراحی نرمافزار Design Patterns کداماند
- اصول کدنویسی تمیز Clean Code چیست
- Git چیست و چرا در برنامهنویسی اهمیت دارد
- محیطهای توسعه یکپارچه IDE چه نقشی در برنامهنویسی دارند