در برنامه نویسی شی گرا، یک کلاس یک برنامه-کد-الگوی توسعه پذی کلاس برنامه نویسی در اراک ر برای ایجاد اشیا، ارائه مقادیر اولیه برای حالت (متغیرهای عضو) و پیاده سازی رفتار (توابع یا متدهای عضو) است.[1][2][a]
هنگامی که یک شی توسط سازنده کلاس ایجاد می شود، شی به دست آمده نمونه ای از کلاس نامیده می شود، و متغیرهای عضو خاص برای شی، متغیرهای نمونه نامیده می شوند، تا با کلاس برنامه نویسی در اراک متغیرهای کلاس مشترک در کلاس تضاد داشته باشند.
در زبانهای خاص، کلاسها، در واقع، فقط یک ویژگی زمان کامپایل هستند (کلاسهای جدید را نمیتوان در زمان اجرا اعلام کرد)، در حالی که در زبانهای دیگر، کلاسها شهروندان درجه یک هستند و عموماً خودشان شی هستند (معمولاً از نوع Class یا مشابه). در این زبان ها به کلاسی که در درون خود کلاس ایجاد می کند متاکلاس می گویند.
مفاهیم مرتبط
نمونه، مثال
در برنامه نویسی شی گرا (OOP)، یک نمونه یک رخداد عینی از کلاس برنامه نویسی در اراک هر شی است که معمولاً در طول زمان اجرای یک برنامه رایانه ای وجود دارد. به طور رسمی، "مثال" مترادف با "شی" است زیرا هر یک مقدار خاصی (تحقق) هستند، و ممکن است آنها را یک شیء نمونه نامید. «مثال» بر هویت متمایز شی تأکید می کند. ایجاد یک مصداق را مصداق می گویند.
یک شی ممکن است از جهات مختلفی متفاوت باشد. هر تغییری که متوجه آن شیء می شود، نمونه ای از کلاس آن است. یعنی عضوی از یک کلاس معین است که به جای متغیر، مقادیر مشخصی دارد. در یک زمینه غیر برنامهریزی، میتوانید «سگ» را به عنوان یک نوع و سگ خاص خود را به عنوان نمونهای کلاس برنامه نویسی در اراک از آن کلاس در نظر بگیرید.[3]
در برنامه نویسی مبتنی بر کلاس، اشیا به عنوان نمونه هایی از کلاس ها توسط زیر روال هایی به نام سازنده ایجاد می شوند و توسط تخریب کننده ها از بین می روند. یک شی نمونه ای از یک کلاس است که می تواند به تمام انواع داده ها (اولیه و همچنین غیر ابتدایی) و روش ها و غیره یک کلاس دسترسی داشته باشد. بنابراین، اشیا را می توان نمونه های کلاس یا اشیاء کلاس نامید. نمونه سازی شی به عنوان ساخت و ساز شناخته می شود. همه کلاسها را نمیتوان نمونهسازی کرد – کلاسهای انتزاعی را نمیتوان نمونهسازی کرد، در حالی که کلاسهایی که میتوانند نمونهسازی شوند، کلاسهای مشخص نامیده میشوند. در برنامه نویسی مبتنی بر نمونه اولیه، نمونه سازی به جای آن با کپی کردن (کلونینگ) یک نمونه اولیه انجام می شود.[4]
کلاس در مقابل نوع
در معمولیترین کاربرد آن، مردم اغلب به «کلاس» یک شی ا آموزش برنامه نویسی کودکان و نوجوانان شاره میکنند، اما اشیاء به زبان محدود دارای نوع هستند: رابط، یعنی انواع متغیرهای کلاس برنامه نویسی در اراک عضو، امضاهای توابع عضو (روشها) و ویژگیهایی که اینها راضی میکنند. در همان زمان، یک کلاس یک پیاده سازی دارد (مخصوصاً اجرای متدها)، و می تواند اشیایی از یک نوع معین را با یک پیاده سازی معین ایجاد کند.[5] از نظر تئوری نوع، یک کلاس یک پیاده سازی است - یک ساختار داده مشخص و مجموعه ای از برنامه های فرعی - در حالی که یک نوع یک رابط است. کلاس های مختلف (بتنی) می توانند اشیایی از همان نوع (انتزاعی) تولید کنند (بسته به نوع سیستم). برای مثال، نوع Stack ممکن است با دو کلاس پیادهسازی شود: SmallStack (سریع برای پشتههای کوچک، اما کلاس برنامه نویسی در اراک مقیاس ضعیف) و ScalableStack (مقیاس خوب اما سربار بالا برای پشتههای کوچک). به طور مشابه، یک کلاس معین ممکن است چندین سازنده مختلف داشته باشد.
انواع کلاس ها عموماً اسامی را نشان می دهند، مانند شخص، مکان یا چیز، یا چیزی که اسمی شده است، و یک کلاس نشان دهنده اجرای آن ها است. به عنوان مثال، یک نوع موز ممکن است خصوصیات و عملکرد موز را به طور کلی نشان دهد، در حالی که کلاسهای ABCBanana و XYZBanana راههای تولید موز را نشان میدهند (مثلاً تأمینکنندگان موز یا ساختار دادهها و عملکردها برای نمایش و ترسیم موز در یک بازی ویدیویی). کلاس ABCBanana سپس کلاس برنامه نویسی در اراک میتواند موز خاصی تولید کند: نمونههایی از کلاس ABCBanana، اشیایی از نوع Banana هستند. اغلب تنها یک پیاده سازی از یک نوع داده می شود، در این صورت نام کلاس اغلب با نام نوع یکسان است.
طراحی و پیاده سازی
کلاس ها از اجزای ساختاری و رفتاری تشکیل شده اند.[1] زبانهای برنامهنویسی که شامل کلاسهایی بهعنوان یک ساختار برنامهنویسی هستند، از ویژگیهای مختلف مرتبط با کلاس پشتیبانی میکنند، و نحو مورد نیاز برای استفاده از این ویژگیها از یک زبان برنامهنویسی به زبان دیگر بسیار متفاوت است.
ساختار
نماد UML برای کلاس ها
یک کلاس حاوی توضیحات فیلد داده (یا ویژگی ها، فیلدها، کلاس برنامه نویسی در اراک اعضای داده یا ویژگی ها) است. اینها معمولاً انواع فیلدها و نامهایی هستند که در زمان اجرای برنامه با متغیرهای حالت مرتبط می شوند. این متغیرهای حالت یا متعلق به کلاس یا نمونه های خاصی از کلاس هستند. در اکثر زبان ها، ساختار تعریف شده توسط کلاس، چیدمان حافظه مورد استفاده توسط نمونه های آن را تعیین می کند. پیاده سازی های دیگری نیز امکان پذیر است: برای مثال، اشیاء در پایتون از کانتینرهای کلیدی-مقدار انجمنی استفاده می کنند.[6]
برخی از زبان های برنامه نویسی مانند ایفل از مشخصا Programming class in Arak ت ثابت ها به عنوان بخشی از تعریف کلاس پشتیبانی می کنند و آنها را از طریق سیستم نوع اجرا می کنند. کپسول