تعریف کلاس و اشیاء

کلاس

کلاس روشی برای بسته بندی نوع داده مجرد است . در کلاس امکان بسته بندی و محصور کردن (Encapsulation) مجموعه ای از داده ها است . روال های پردازش کننده این داده ها را به صورت یک بسته فراهم می کند.
داده های داخل یک کلاس به وسیله کلاس محافظت می گردد. به گونه ای که پردازش داده های خصوصی یک کلاس از طریق روال های دخلی آن امکان پذیر است . داده های یک کلاس را متغیرهای کلاس و روال های آن را روش نامیده اند.
برای مثال کلاس انسان ها یک کلاس قابل تعریف است. در این کلاس خصوصیات مشترک انسانها تعریف می گردد و هیچ انسان خاصی را نشان نمی دهد. کلاس یک نوع است. همانگونه که مثلا int یک نوع است.
عملیات محاسباتی (یا غیر محاسباتی) بر روی نوع داده انجام نمی شود. بلکه این عملیات بر روی متغیرهایی که از این نوع داده تعریف می گردد انجام می شود. به طور مشابه عملیات محاسباتی (یا غیر محاسباتی) روی کلاس انجام نمی شود.

شی

دیدگاه شی گرایی (Object Oriented) از اواسط دهه 1970 تا اواخر 1980 در حال مطرح شدن بود.
در این دوران تلاشهای زیادی برای ایجاد روشهای تحلیل و طراحی شی گرا صورت پذیرفت. در نتیجه این تلاشها بود که در طول 5 سال یعنی 1989تا 1994 ، تعداد متدلوژیهای شی گرا از کمتر از 10 متدلوژی به بیش از 50 متدلوژی رسید. تکثیر متدلوژیها و زبانهای شی گرایی و رقابت بین اینها به حدی بود که این دوران به عنوان “جنگ متدلوژیها ” لقب گرفت. از جمله متدلوژیهای پر کاربرد آن زمان می توان ازShlayer- Mellor ، Coad-yourdan ، Fusion ،OMT ،OOSE ، Booch و غیره نام برد. فروانی و اشباع متدلوژیها و روشهای شی گرایی و نیز نبودن یک زبان مدلسازی استاندارد ، باعث مشکلات فروانی شده بود . از یک طرف کاربران از متدلوژیهای موجود خسته شده بودند ، زیرا مجبور بودند از میان روشهای مختلف شبیه به هم که تفاوت کمی در قدرت و قابلیت داشتند یکی را انتخاب کنند . بسیاری از این روشها ، مفاهیم مشترک شی گرایی را در قالبهای مختلف بیان می کردند که این واگرایی و نبودن توافق میان این زبانها ، کاربران تازه کار را از دنیای شی گرایی زده می کرد و آنها را از این حیطه دور می ساخت . عدم وجود یک زبان استاندارد ، برای فروشندگان محصولات نرم افزاری نیز مشکلات زیادی ایجاد کرده بود.

پیدایش شی گرایی

برنامه نويسي شي گرا در اوايل دهه ۱۹۷۰ توسط آلن کي Alan Kay طراحي شده يعني اولين قدمهاي اين سبک برنامه نويسي توسط آلن کي برداشته شده است. اولين زبان شي گرا توسط آلن کي طراحي شد. اسم اين زبان Small Talk است.
آلن کي گفته بود که : آن چيزي که باعث شد اين فکر به ذهنم برسد نحوه عملکرد سلولهاي زيست محيطي بود. يعني اين سبک برنامه نويسي از روي سلولهاي جاندارها الگو برداري شده است.
آن چيزي که باعث شد که آلن کي از روي سلول هاي جانداران الگو برداري کند نحوه زندگي سلولها بود:
• هر سلول نمونه اي از اصل است و هر خصوصياتي که دارد از اصل خود به ارث برده.(ژنتيک سلول). همچنين هر سلول رفتارهايي دارد که از اصل خود به ارث برده.
• سلولها همگي مستقل از هم زندگي مي کنند و براساس ارسال پيام هاي شيميايي با يکديگر ارتباط برقرار مي کنند. ارسال پيام به اين صورت است که پيام از پوسته يکي خارج و به پوسته ديگري وارد مي شود.
• سلولها مي توانند از يکديگر متمايز شوند.
با توجه به گفته های بالا

می توان متوجه شد که همان مشخصه کلاسها رو بيان مي کند يعني هر شي از يک کلاسي تشکيل شده که ويژگي هاي آن کلاس رو با خودش به ارث برده است.
همانطور که می دانیم اشيا با يکديگر ارتباط برقرار مي کنند. نحوه ارتباط يا فرستادن پيام در اشيا هنگام فراخواني رفتارها در يک رويداد است.
هر شي خودش يک شناسنامه يا Identifier دارد که ويژگي هاي آن شي را بيان مي کند.
Small Talk مانند سلولهاي جانداري عمل مي کند. يعني آلن کي در تمامي قسمتهاي اين زبان تعيين کرده بود که اشيا با هم ارتباط برقرار مي کنند و داراي شناسنامه اي هستند و همچنين مستقل از همديگر کار مي کنند.
اصول اوليه اي که آلن کي براي برنامه نويسي شي گرا تعيين کرده بود اينها هستن:
• هر چيزي يک شي است.
• هر برنامه اي شامل اشيا هست که اشيا با ارسال پيام به يکديگر تعيين مي کنند که چه کاري بايد الان انجام بشود.
• هر شي يک حافظه Memory براي خودش دارد که بتوان به وسيله آن اشياي ديگر را ساخت.
• هر شي خودش از يک کلاس Class هست.

دیدگاه ها بسته شده است