کلاس (برنامهنویسی)
در مهندسی نرمافزار و مهندسی دانش، کلاس نقشهٔ نوعی و مشترک برای گروهی از اشیاء[۱] است که ویژگیهای[۲] مشترکی داشته، و رفتارهای مشترکی از خود نشان میدهند. درواقع، کلاسها انواعی هستند که شخص برنامهنویس، خود میتواند، آنها را برای حل مسئلههای دنیای واقعی طراحی کند، و حاوی تعریفهای لازم برای دو عنصر اساسی زیر میباشند:
اشیاء، نمونههایی هستند که به هنگام اجرا از روی نقشهٔ ارائه شده بهوسیلهٔ کلاس ایجاد میشوند. میتوان گفت همانطور که متغیر نمونهای از انواع اولیه است، شیء نمونهای از کلاس است.
کلاس، مفهوم بسطیافته از ساختمان است که به جای این که، فقط دادهها را نگهداری کند، میتواند هم دادهها و هم توابع را با هم نگهداری کند[۳].
[1]. class
برنامهنویسی شیءگرا، دادهها (خواص) و متدها (رفتارها) را در بستههایی به نام کلاس محصور میکند.[۴] کلاسها دارای خاصیت کپسوله سازی[۴] هستند. این بدان معناست که اشیاء میدانند که چگونه از طریق رابطهای تعریفشده با یکدیگر ارتباط برقرار کنند. معمولاً، اشیاء نباید از چگونگی پیادهسازی اشیاء دیگر مطلع باشند، بهعبارت دیگر، جزئیات پیادهسازی در داخل خود اشیاء پنهان شدهاند.
مثال: رانندگی خودرو بدون اطلاع از خصوصیات طرز کار داخلی موتور و سیستمهای اگزوز و جعبهدنده امکانپذیر است. در مهندسی نرمافزار ضرورت پنهانسازی اطلاعات امری بسیار مهم هست. [۵]
در زبانهای رویهای[۶] برنامهنویسی، مثل زبان سی (C)، برنامهنویسی، بیشتر عملگرایانه[۷] است. درحالیکه، زبانهای برنامهنویسی سیپلاسپلاس (++C)، جاوا (Java)، و سیشارپ (#C) دارای پارادایم شیءگرایانه هستند. واحد برنامهنویسی در زبانهای رویهای تابع است، ولی، زبانهای شی گرا دارای کلاسها - که اشیاء نهایتاً از آنها ایجاد میشوند (یا اصطلاحاً نمونهسازی میشوند) - به عنوان واحد برنامهنویسی هستند. توابع نیز در داخل کلاسها به عنوان متدهایی پیادهسازی میشوند.
برنامهنویسان C، بیشتر بر روی نوشتن توابع متمرکز هستند. گروههایی از اعمال که وظیفهٔ خاصی را بر عهده دارند، توابع را تشکیل میدهند و توابع گروه شده و برنامه را تشکیل میدهند. البته در زبان c دادهها نیز مهم هستند، اما نگرش اصلی در اینگونه زبانها این است که دادهها بیشتر برای پشتیبانی اعمالی که توابع انجام میدهند به کار میروند.
متغیرها
[ویرایش]مقالهٔ اصلی: متغیرها
همواره، متغیرها سه صفت عمده را دارا هستند: اسم، نوع، و مقدار. چنانچه اشیاء را گونه امتداد یافتهٔ متغیرها بدانیم، کلاس در واقع نوع (Type) را مشخص میکند
پانوشتهها
[ویرایش]- ↑ Objects
- ↑ Properties
- ↑ دكتر بابك بشري راد (۱۳۹۴). برنامه سازي پيشرفته با ++C. تهران: ناقوس. صص. ۱۱۷. شابک ۹۷۸-۹۶۴-۳۷۷-۷۴۶-۳.
- ↑ ۴٫۰ ۴٫۱ Encapsulation
- ↑ "OOP08-CPP. Do not return references to private data". CERT C++ Secure Coding Standard. Carnegie Mellon University. 2010-05-10. Archived from the original on 2015-10-03. Retrieved 2012-05-07.
- ↑ Procedural
- ↑ Action oriented
جستارهای وابسته
[ویرایش]پیوند به بیرون
[ویرایش]منابع
[ویرایش]- برنامهنویسی به زبان C++، تألیف عینالله جعفرنژاد قمی
- Visual C++ .NET برای برنامهنویسان پیشرفته
- جاوا: چگونه آن را برنامهنویسی کنیم (چاپ هفتم) (انگلیسی)