کلاس (برنامه‌نویسی)

در مهندسی نرم‌افزار و مهندسی دانش، کلاس نقشهٔ نوعی و مشترک برای گروهی از اشیاء است که ویژگی‌های مشترکی داشته، و رفتارهای مشترکی از خود نشان می‌دهند. درواقع، کلاس‌ها انواعی هستند که شخص برنامه‌نویس، خود می‌تواند، آن‌ها را برای حل مسئله‌های دنیای واقعی طراحی کند، و حاوی تعریف‌های لازم برای دو عنصر اساسی زیر می‌باشند:
 داده‌ها، یا صفات
 عملیات، یا روش‌ها

اشیاء، نمونه‌هایی هستند که به هنگام اجرا از روی نقشهٔ ارائه شده به‌وسیلهٔ کلاس ایجاد می‌شوند. می‌توان گفت همان‌طور که متغیر نمونه‌ای از انواع اولیه است، شیء نمونه‌ای از کلاس است.

کلاس، مفهوم بسط‌یافته از ساختمان است که به جای این که، فقط داده‌ها را نگه‌داری کند، می‌تواند هم داده‌ها و هم توابع را با هم نگه‌داری کند.
[1]. class

برنامه‌نویسی شیءگرا، داده‌ها (خواص) و متدها (رفتارها) را در بسته‌هایی به نام کلاس محصور می‌کند. کلاس‌ها دارای خاصیت کپسوله سازی هستند. این بدان معناست که اشیاء می‌دانند که چگونه از طریق رابط‌های تعریف‌شده با یکدیگر ارتباط برقرار کنند. معمولاً، اشیاء نباید از چگونگی پیاده‌سازی اشیاء دیگر مطلع باشند، به‌عبارت دیگر، جزئیات پیاده‌سازی در داخل خود اشیاء پنهان شده‌اند.

مثال: رانندگی خودرو بدون اطلاع از خصوصیات طرز کار داخلی موتور و سیستم‌های اگزوز و جعبه‌دنده امکان‌پذیر است. در مهندسی نرم‌افزار ضرورت پنهان‌سازی اطلاعات امری بسیار مهم هست. 

در زبان‌های رویه‌ای برنامه‌نویسی، مثل زبان سی (C)، برنامه‌نویسی، بیشتر عملگرایانه است. درحالی‌که، زبان‌های برنامه‌نویسی سی‌پلاس‌پلاس (++C)، جاوا (Java)، و سی‌شارپ (#C) دارای پارادایم شیءگرایانه هستند. واحد برنامه‌نویسی در زبان‌های رویه‌ای تابع است، ولی، زبان‌های شی گرا دارای کلاس‌ها - که اشیاء نهایتاً از آنها ایجاد می‌شوند (یا اصطلاحاً نمونه‌سازی می‌شوند) - به عنوان واحد برنامه‌نویسی هستند. توابع نیز در داخل کلاس‌ها به عنوان متدهایی پیاده‌سازی می‌شوند.

برنامه‌نویسان C، بیشتر بر روی نوشتن توابع متمرکز هستند. گروه‌هایی از اعمال که وظیفهٔ خاصی را بر عهده دارند، توابع را تشکیل می‌دهند و توابع گروه شده و برنامه را تشکیل می‌دهند. البته در زبان c داده‌ها نیز مهم هستند، اما نگرش اصلی در اینگونه زبان‌ها این است که داده‌ها بیشتر برای پشتیبانی اعمالی که توابع انجام می‌دهند به کار می‌روند.

متغیرها 
مقالهٔ اصلی: متغیرها

همواره، متغیرها سه صفت عمده را دارا هستند: اسم، نوع، و مقدار. چنانچه اشیاء را گونه امتداد یافتهٔ متغیرها بدانیم، کلاس در واقع نوع (Type) را مشخص می‌کند

پانوشته‌ها

جستارهای وابسته 
 متغیرها
 برنامه‌نویسی اشیاءنگر
 هستی‌شناسی (علوم محاسباتی)

پیوند به بیرون 
 مفاهیم مربوط به برنامه‌نویسی اشیاءنگر

منابع 
 برنامه‌نویسی به زبان C++، تألیف عین‌الله جعفرنژاد قمی
 Visual C++ .NET برای برنامه‌نویسان پیشرفته
 جاوا: چگونه آن را برنامه‌نویسی کنیم (چاپ هفتم) (انگلیسی)

کلاس (برنامه‌نویسی)
برنامه‌نویسی شیءگرا
ساختارهای برنامه‌نویسی
موضوعات مربوط به زبان‌های برنامه‌نویسی