کلاس Class
کلاس یا Class چیست؟
کلاس (Class) در برنامه نویسی شئ گرا، نوعی قالب برنامه نویسی قابل گسترش است که برای ایجاد اشیاء، تعیین مقادیر اولیهی وضعیت و مشخص نمودن رفتار آنها مورد استفاده قرار میگیرد.
شئ (یا آبجکت Object) هایی که از روی کلاس ساخته میشوند را یک نمونه (Instance) از آن کلاس مینامند. به عنوان مثالی ساده میتوان کلاسی تحت عنوان Circle را در نظر گرفت که خصوصیات و اعمال (یا رفتار) اشیائی به نام دایره را تعریف میکند. با کمک این کلاس، برنامهنویس میتواند اشیاء (دایرههای) مختلفی با خصوصیات (مرکز و شعاع) متفاوت ایجاد کند و اعمالی نظیر محاسبه شعاع و مساحت یا ترسیم دایره را روی هرکدام انجام دهد در حالی که تعریف و پیادهسازی تمامی این خصوصیات و اعمال یک بار حین تعریف کلاس صورت گرفته است.
آبجکتها معمولا با کمک زیرروال خاصی به نام تابع سازنده (Constructor) ایجاد میشوند. این تابع در بسیاری از زبانهای برنامه نویسی هم نام خود کلاس بوده و وظیفه آمادهسازی اولیه آبجکت و تعیین مقادیر اولیه متغیرها را برعهده دارد.
متغیرهایی که برای هر آبجکت متمایز و متفاوت هستند متغیرهای نمونه (Instance Variable) نامیده میشوند و وضعیت و خواص آن آبجکت را مشخص میکنند. متغیرهای دیگری نیز در Class ها تعریف میشوند که برای تمام اشیاء به اشتراک گذاشته میشود و به آنها متغیرهای کلاس (Class Variable) میگویند (طبیعتا با تغییر مقدار این متغیرها توسط یک آبجکت مقدار آن در تمام آبجکتها به همان صورت تغییریافته مشاهده میشود).
رفتار یک Class یا نمونههای آن توسط متدها (Method) یا توابع عضو (Member Function) مشخص میشود. متدها را نیز میتوان به دو گروه متدهای نمونه و متدهای کلاس دستهبندی نمود. در واقع متدها عملی را روی آبجکت یا کلاس انجام میدهند.
به عنوان مثال میتوان کلاسی با نام Employee (به معنای کارمند) در نظر گرفت. در این کلاس، میتوان متغیرهایی برای نگهداری نام و نام خانوادگی، کد ملی، سمت، حقوق ماهیانه، بخش سازمانی و … مربوط به کارکنان یک شرکت یا سازمان تعریف نمود. تخصیص شغل و واریز حقوق به حساب کارمند از جمله اعمالی هستند که میتواند در قالب متدها تعریف شده و بخشی از رفتار آبجکتهای از نوع Employee را تعیین کنند.
نمونهای از تعریف یک Class ساده با دو متغیر عضو و تابع سازنده آن به زبان Visual Basic .Net:
Public Class Employee
Public FirstName As String
Public LastName As String
Public Sub New(ByVal f_name As String, ByVal l_name As String)
FirstName = f_name
LastName = l_name
End Sub
End Class
تغییردهندههای سطح دسترسی امکان کنترل سطح دسترسی به کلاسها، متدها و اعضای آنها را فراهم می آورد. به عنوان مثال تنها متدهای یک کلاس میتوانند به اعضای خصوصی (Private) آن کلاس دسترسی داشته باشند.
بسته به زبانهای برنامه نویسی مختلف، ممکن است یک کلاس، کلاس دیگری را در بربگیرد یا با مشتق شدن (به ارث بردن رفتارها و متغیرها) از یک کلاس دیگر، رابطهای سلسله مراتبی با کلاسهای والد برقرار کند. برای مثال کلاس Employee میتواند از کلاسی به نام People (با عناصر و متدهای مرتبط با افراد) مشتق شود چرا که از نظر منطقی هر Employee یک People نیز به شمار میرود.
از مزایای استفاده از کلاسها و برنامهنویسی شئ گرا میتوان به قابلیت استفادهی مجدد، عیبیابی و نگهداری سادهتر، توسعهپذیری و کارایی بالاتر اشاره کرد.
پیوندهای پیشنهادی تک دیک