به نام خدا و سلام و عرض ادب خدمت شما خوانندگان گرامی؛
به لطف خدا مجموعه ی آشنایی با برنامه نویسی شی گرا در PHP را شروع کرده ایم تا به نوبه ی خود به آگاهی برنامه نویسان ایرانی نسبت به این موضوع کمکی کرده باشیم. متاسفانه کلمات "شی گرا" در اکثر برنامه نویسان ایرانی که با این مسئله آشنا نیستند، باعث دلهره و ترس می شوند در صورتی که یکی از بهترین و لذت بخش ترین انواع برنامه نویسی همین برنامه نویسی شی گرا می باشد.
در این مجموعه سعی داریم در قسمت های کوتاه و به زبان ساده به این مسئله ی مهم بپردازیم. برویم سراغ اصل مطلب!
توجه: این مقاله برای افراد مبتدی در نظر گرفته نشده است. برای استفاده از تمام این مجموعه باید درک حداقلی و آشنایی پایه با یک زبان برنامه نویسی (در این دوره، PHP) داشته باشید. با این همه اگر چنین آشنایی ندارید هنوز هم میتوانید از چند قسمت اول برای درک بهتر برنامه نویسی شی گرا (فارغ از زبان برنامه نویسی) استفاده کنید.
از طرفی مجموعه روکسو دو راه برای آشنایی شما با مفاهیم اولیه و مقدماتی زبان PHP دارد:
راه اول: استفاده از دوره آموزش رایگان برنامه نویسی به زبان PHP می باشد که به صورت متنی در اختیار عزیزان قرار گرفته است.
راه دوم: بهره مندی از دوره ویدیویی آموزش زبان برنامه نویسی PHP است که به صورت آنلاین و فصل به فصل در قالب یک پروژه ارائه شده است.
یک سوال: چرا به سراغ برنامه نویسی شی گرا (Object-oriented programming) برویم؟ مگر برنامه نویسی رویه ای (Procedural programming) مشکلی دارد؟
پاسخ: برنامه نویسی رویه ای به خودی خود مشکلی ندارد اما در مقایسه با برنامه نویسی شی گرا مشکل دارد! بسیاری از چیز ها در زندگی نسبی است؛ به طور مثال خندیدن نه تنها مشکلی ندارد بلکه پسندیده است اما همین خندیدن در مراسم خاکسپاریِ یک فرد، بسیار زشت و بی ادبانه است! به همین ترتیب برنامه نویسی رویه ای مشکلی ندارد اما فواید برنامه نویسی شی گرا آنقدر زیاد است که در مقایسه با آن توجیه نمی شود. به عبارت دیگر وقتی فواید برنامه نویسی شی گرا را بدانیم و باز هم بر همان حالت قدیمی و رویه ای باقی بمانیم، تقصیر از ماست.
سوال: این فواید و نکات مثبت برنامه نویسی شی گرا چیست؟
پاسخ: به طور خلاصه چند مورد عرض را می کنم:
معمولا زمانی که صحبت از برنامه نویسی شی گرا می شود، از مثال معروف ماشین استفاده می کنند، اما ما برای شروع چنین قصدی نداریم چرا که ذهن ما را بدون دلیل از مبحث دور می کند. ما مستقیم به سراغ مفاهیم میرویم و سپس مثال ماشین را توضیح می دهیم!
بخش اساسی و پایه ی تمام کد های شی گرا بخشی به نام کلاس (Class) می باشد. "کلاس" در واقع مجموعه ای از متغیر ها و توابع مربوط به هم اند که بین یک جفت آکولاد قرار گرفته اند و دارای یک نام واحد می باشند. به عبارت دقیق تر کلاس ها نقشه ی کلی هستند و اشیاء (Objects) نمونه ی ساخته شده از آنها؛ مانند دستور پخت یک کیک و خودِ کیک!
پس دیدیم که کلاس مسئله ی فنی و پیچیده ی خاصی ندارد بلکه همان توابع و متغیر های همیشگی خودمان است منتهی در کنار هم و با اسمی جدید، همین!
قبل از ادامه ی بحث ذکر یک نکته بسیار مهم است؛ تفاوت میان علائم نگارشی مانند آکولاد و قلاب و ...
از آنجایی که برنامه نویسی یک شغل بین المللی است، بهتر است شما علائم را با اسم های انگلیسیشان حفظ کنید.
اما ادامه ی بحث:
Property | در زبان های برنامه نویسی شی گرا (به اختصار OOP - Object Oriented Programming) به متغیر هایی که متعلق به یک کلاس خاص هستند Properties (به فارسی: خصوصیات) می گویند. |
Method | در زبان های برنامه نویسی شی گرا (به اختصار OOP - Object Oriented Programming) به توابع Method (به فارسی همان متد) گفته می شود. |
مثال روزمره: اگر به مثال معروف ماشین برگردیم می توان گفت پراید یک ماشین است، پرادو هم یک ماشین است، پژو 206 هم یک ماشین است. تمام این ماشین ها یک طرح کلی دارند. به عنوان مثال چهار چرخ، یک فرمان، یک دنده، پنجره و الی آخر.
این طرح و نقشه ی کلی همان کلاس است. می توانیم اسم این کلاس را کلاسِ Vehicle (به معنای اتومبیل) بگذاریم.
حالا هر کدام از این ماشین ها، مثلا یک پراید، می شود یک شیء (Object) از این کلاس؛ پراید یک شیء از کلاسِ اتوموبیل است چرا که نمونه ی ساخته شده از طرح کلیِ (Class) اتوموبیل است. از نظر خصوصیت ها (Properties) و متد ها می توان گفت ترمز کردن یک متد و رنگ ماشین یک خصوصیت است. به تصویر زیر نگاه کنید:
تا این قسمت با مفاهیم اصلی برنامه نویسی شی گرا یا OOP آشنا شدیم. در قسمت های بعد سراغ مفاهیم بیشتر و بعضاً کد نویسی نیز خواهیم رفت. همراه ما باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.