در کتابخانه دات نت، کلاسی وجود دارد به نام Object یا شئ. در دات نت، کلیه نوع های داده و کلاس ها، چه آنهایی که به صورت دستی می نویسیم و چه آنهایی که در کتابخانه دات نت وجود دارند، از کلاس object مشتق شده اند، به جز کلاس هایی که برای آنها کلاس والد را مشخص کرده ایم. حتی کلاس هایی که برای آنها کلاس والد مشخص شده، باز هم شاخه اصلی زنجیره وراثت به کلاس object ختم می شود. پس به این صورت می گوییم که کلاس object، کلاس پایه ای برای کلیه کلاس های دات نت می باشد. یکسری رفتارها برای کلاس Object تعریف شده اند که در تمامی کلاس ها در دسترس هستند، زیرا کلیه کلاس ها از کلاس object مشتق شده اند. این رفتارها به شرح زیر می باشند:
گفتیم زمان تعریف کردن یک شئ، نوع داده والد را به جای خود کلاس برای متغیر در نظر گرفت:
همینطور که مشاهده می کنید فرقی نمی کند مقدار متغیر چه باشد، هر مقداری را می توان در متغیر از نوع object ذخیره کرد. در این قسمت سعی کردیم مقدماتی از مبحث وراثت را با هم مرور کنیم. در بخش بعدی بحث وراثت را با بررسی مفهوم Polymorphism ادامه خواهیم داد.
شی
دیدگاه شی 1 (Object Oriented) از اواسط دهه 1970 تا اواخر 1980 در حال مطرح شدن بود.
در این دوران تلاشهای زیادی برای ایجاد روشهای تحلیل و طراحی شی گرا صورت پذیرفت. در نتیجه این تلاشها بود که در طول 5 سال یعنی 1989تا 1994 ، تعداد متدلوژیهای شی گرا از کمتر از 10 متدلوژی به بیش از 50 متدلوژی رسید. تکثیر متدلوژیها و زبانهای شی گرایی و رقابت بین اینها به حدی بود که این دوران به عنوان "جنگ متدلوژیها " لقب گرفت. از جمله متدلوژیهای پر کاربرد آن زمان می توان ازShlayer- Mellor ، Coad-yourdan ، Fusion ،OMT ،OOSE ، Booch و غیره نام برد. فروانی و اشباع متدلوژیها و روشهای شی گرایی و نیز نبودن یک زبان مدلسازی استاندارد ، باعث مشکلات فروانی شده بود . از یک طرف کاربران از متدلوژیهای موجود خسته شده بودند ، زیرا مجبور بودند از میان روشهای مختلف شبیه به هم که تفاوت کمی در قدرت و قابلیت داشتند یکی را انتخاب کنند . بسیاری از این روشها ، مفاهیم مشترک شی گرایی را در قالبهای مختلف بیان می کردند که این واگرایی و نبودن توافق میان این زبانها ، کاربران تازه کار را از دنیای شی گرایی زده می کرد و آنها را از این حیطه دور می ساخت . عدم وجود یک زبان استاندارد ، برای فروشندگان محصولات نرم افزاری نیز مشکلات زیادی ایجاد کرده بود.
پیدایش شی گرایی
برنامه نويسي شي گرا در اوايل دهه ۱۹۷۰ توسط آلن کي Alan Kay طراحي شده يعني اولين قدمهاي اين سبک برنامه نويسي توسط آلن کي برداشته شده است. اولين زبان شي گرا توسط آلن کي طراحي شد. اسم اين زبان Small Talk است.
آلن کي گفته بود که : آن چيزي که باعث شد اين فکر به ذهنم برسد نحوه عملکرد سلولهاي زيست محيطي بود. يعني اين سبک برنامه نويسي از روي سلولهاي جاندارها الگو برداري شده است.
آن چيزي که باعث شد که آلن کي از روي سلول هاي جانداران الگو برداري کند نحوه زندگي سلولها بود:
با توجه به گفته های بالا
می توان متوجه شد که همان مشخصه کلاسها رو بيان مي کند يعني هر شي از يک کلاسي تشکيل شده که ويژگي هاي آن کلاس رو با خودش به ارث برده است.
همانطور که می دانیم اشيا با يکديگر ارتباط برقرار مي کنند. نحوه ارتباط يا فرستادن پيام در اشيا هنگام فراخواني رفتارها در يک رويداد است.
هر شي خودش يک شناسنامه يا Identifier دارد که ويژگي هاي آن شي را بيان مي کند.
Small Talk مانند سلولهاي جانداري عمل مي کند. يعني آلن کي در تمامي قسمتهاي اين زبان تعيين کرده بود که اشيا با هم ارتباط برقرار مي کنند و داراي شناسنامه اي هستند و همچنين مستقل از همديگر کار مي کنند.
اصول اوليه اي که آلن کي براي برنامه نويسي شي گرا تعيين کرده بود اينها هستن:
در زبان های برنامه نویسی شئ گرا نیز ما باید به شناسایی موجودیت ها و اشیاء مورد استفاده در برنامه بپردازیم و خصوصیات و رفتارهای آن را تعریف کنیم. فرض کنید تصمیم داریم برنامه ای برای مدیریت یک اداره بنویسیم. برنامه اداره شامل یکسری اشیاء می باشد مانند:
پس از شناسایی موجودیت ها باید خصوصیت ها و رفتارهای آن ها را شناسایی کنیم. برای مثال شئ عضو اداره را در نظر بگیرید. این شئ شامل یکسری خصوصیت ها به شرح زیر می باشد:
همچنین هر کارمند یکسری رفتارهایی دارد که مختص به عملیات های اداره می باشد. برای مثال کارمند می تواند رفتارهای زیر را داشته باشد:
برچسب:
نویسنده: مریم اسدیان