در قسمت قبل فهمیدیم که شئ گرایی برای پاسخ دادن به چه نیازهایی به وجود آمده و تعریف یک شئ در دنیای واقعی چیست حال می خواهیم به این بپردازیم که اشیا در یک زبان برنامه نویسی چه هستند و چطور شباهت های چشمگیری با اشیا در دنیای واقعی دارند.
اگر به یاد داشته باشید در پست قبل سه مولفه هویت، ویژگی ها و رفتارها چیزهایی بودند که در بین اشیا در دنیای واقعی مشترک بودند و هر شئ بر اساس همین سه مولفه توصیف می شدند.خوب حالا می رویم سراغ مولفه های اشیا در زبان های برنامه نویسی : دقیقا همین سه مولفه چیزهایی هستند که اشیا را در یک زبان برنامه نویسی توصیف می کنند بنابراین اگر شما با این سه در دنیای واقعی آشنا باشید نباید مشکلی با آنها در یک زبان برنامه نویسی داشته باشید.
یک شئ در یک برنامه کامپیوتری هویت جدا از سایر اشیا دارد که با آدرس آن در حافظه مشخص می شود همچنین ویژگی های مخصوص خودش را دارد یعنی اطلاعاتی که وضعیت کنونی آن شئ را مشخص می کند و رفتارهای مخصوص خودشان را دارند یعنی کارهایی که می توانند بکنند (بعدا خواهیم دید ویژگی ها و رفتارهای یک شئ در یک زبان چطور تعریف می شوند).
حالا از شما می خواهم به یک نکته خیلی مهم توجه کنید : ما معمولا در دنیای واقعی اسم شئ را بر چیزهایی می گذاریم که می توانیم ببینیم و یا حس کنیم اما بر اساس ویژگی هایی که در قسمت قبلی گفته شد در برنامه نویسی می توانیم حتی این محدوده را گسترش دهیم به چیزهایی که در دنیای واقعی نه می توانیم ببینیم و نه حس کنیم، برای مثال حساب بانکی یا تاریخ یا رویداد؛ البته خواهش می کنم توجه کنید که همه ی این چیزهایی که گفتم شامل تعریف شئ در دنیای واقعی می شوند مثلا حساب بانکی هویت مخصوص خودش را دارد: حساب بانکی شما از حساب بانکی من جدا است، حساب بانکی ویژگی های مخصوص خودش را دارد: نام شخصی که صاحب آن حساب است و مقدار پولی که درون آن حساب است را نگهداری می کند، حساب بانکی رفتارهای مخصوص خودش را دارد: شما می توانید از یک حساب بانکی پول بردارید یا به آن پول واریز کنید، می توانید حساب بانکی را باز یا بسته کنید، صد البته ممکن است شما در برنامه ای که می نویسید شئ ای را داشته باشید که در دنیای واقعی هم به آن شئ می گویند مثل شئ ماشین.
و همانطور که خیلی از اشیا نمود فیزیکی ندارند خیلی از آنها نمود تصویری هم روی صفحه کامپیوتر ندارند، البته هستند اشیایی مثل دکمه و تصاویر و ... که نمود تصویری رو صفحه دارند اما همیشه اینطور نیستند مثل شئ آرایه یا حساب بانکی.
بنابراین تا اینجای کار به دو نتیجه خیلی مهم در مور اشیا در برنامه نویسی می رسیم:
پس ممکن است تا اینجا این سوال برای شما پیش بیاید که: پس من وقتی برنامه می نویسم از کجا بفهمم که چیز جدیدی که می خواهم به برنامه ام اضافه کنم یک شئ جدید هست یا نه؟
تعریف کردن اشیا جدید وقتی که می دانیم چیزی که می خواهیم یک شئ در دنیای واقعی مثل ماشین، کتاب یا میز هست آسان هست. اما مشکل وقتی به وجود می آید که مثلا بخواهیم یک برنامه مدیریت رویدادها را بنویسیم، آیا رویداد یک شئ است؟.
خوب یک راه حل این است که ببینیم آن چیز در تعریف شئ که قبلا ارائه کردیم می گنجد یا نه؟ اما اگر این راه به نظر شما سخت است یک راه حل ساده تر برای این مشکل وجود دارد، ببنید کلمه آن چیزی که می خواهید تعریف کنید یک اسم است یا نه؟ البته منظور من از اسم، اسم اشخاص نیست بلکه تعریف اسم در زبان فارسی را مد نظر دارم:
تعریف اسم : «کلمه ای است که برای نامیدن شخص یا حیوان و یا چیزی به کار می رود. مانند : سینما، زمین، آهو، زمان»
اگر آن کلمه اسم بود (نه فعل یا صفت یا ...) یعنی آن چیز یک شئ جدید است.
این راه حل در اکثر موارد درست کار می کند و برای افرادی که تازه برنامه نویسی شئ گرا را شروع کرده اند یک راه کار عالی است اما قطعا بعد از مدتی که فرد حرفه ای شد دیگر نیازی به این کارها نیست و به صورت خودکار متوجه می شود که چه چیز شئ است و نیست.
در قسمت بعدی توضیح خواهم داد که چطور در زبان های برنامه نویسی مختلف اشیا تعریف و ساخته می شوند.