در طی این دورهی آموزش به کررات به مفاهیم شی گرایی برخورد کردید بدون آنکه بدانید آنها چه چیزی هستند و چگونه کار می کنند. در یک جمله برنامه نویسی شی گرایی یعنی سطح حرفه ای از کدنویسی که باعث می شود نرم افزارهای شما توسعه پذیر تر باشند. یکی از اصول این حرفهای بودن آشنایی با مفهومی به نام شیءگرایی و زبان برنامهنویسی شیءگرا یا Object Oriented Programming است. اما این سوال برای شما پیش میآید که شیءگرایی چیست و اصلا مفهوم برنامهنویسی شیءگرا در چه مواردی بکار گرفته میشود؟ در این فصل قصد داریم به صورت مفصل این مباحث را یکبار برای همیشه مطرح کرده تا شما عزیزان درک دقیقی نسبت به این موضوع پیدا کنید.
در زبانهایی که بر پایهی برنامهنویسی شیءگرا هستند معمولا مدلسازی نرمافزار و المانهای آن بر اساس اشیاء انجام میشود. یعنی هرآنچه در دنیای پیرامون برنامهنویسی وجود دارد به دید یک شیء معرفی میشود و هر شیء دارای خصوصیات (Properties) و رفتارها (Behaviors) است.
خصوصیات یا Properties به عنوان مجموعهای از صفات هستند که یک شیء را توصیف میکنند. برای مثال یک شیء به نام انسان را در نظر بگیرید. این شیء دارای یک سری صفات مانند رنگ مو، رنگ پوست، وزن، قد و ... است. و تمام این موارد آن شیء یعنی انسان را توصیف میکنند.
رفتارها یا Behavior به عنوان مجموعهی اعمالی که یک شخص انجام میدهد شناخته میشود مثلا یک شخص میتواند نگاه کند، بنشیند، صحبت کن و راه برود. رفتارها در مجموع به کاری که یک شیء میتواند انجام دهد گفته میشود.
حال بهتر است با مفاهیم اصلی زبان برنامهنویسی شیءگرا آشنا شویم:
در یک تعریف خلاصه انتزاع به فرآیندی گفته میشود که طی آن، در زمان بررسی یک شیء، تنها خصوصیت و رفتارهایی باید در تعریف آن شیء لحاظ شوند که در سیستم مستقیما کاربرد دارند. در واقع انتزاع یا Abstraction مانند یک فیلتر عمل میکند که تنها ویژگیها یا خصوصیات و رفتارهایی که مورد استفاده در برنامه است را از آن عبور میدهد.
در ارتباط با مفهوم کپسوله سازی یک فصل کامل به آن اختصاص دادهایم که میتوانید آن را با کلیک روی این لینک مطالعه کنید. اما در یک خط اگر بخواهیم تعریف کامل از کپسوله سازی داشته باشیم بدین صورت است که کپسوله سازی به معنی پنهان کردن فرآیند اصلی اجرای یک برنامه از دید کاربران است. که این اتفاق درون یک شیء رخ میدهد.
وراثت یکی از اصلیترین مفاهیم موجود در برنامهنویسی شیءگرا است. همانطور که از نام آن مشخص است وقتی یک فرزند متولد میشود قطعا خصوصیات و رفتارهایی را از والدین خود به ارث میبرد. در دنیای برنامهنویسی هم دقیقا به همین صورت است وقتی یک کلاس از کلاس دیگری ارثبری میکند یعنی به خصوصیات و رفتارهای کلاس والد دسترسی دارد. این کار باعث میشود تا حجم کدهای نوشته شده به شدت کاهش یابد. در بخشهای بعدی به توضیح مفصلی در ارتباط با این مفهوم میپردازیم.
برای درک مفهوم چند ریختی یا پلی مورفیسم در دنیای برنامهنویسی مثالی را از دنیای واقعی خدمت شما عزیزان ارائه میدهیم. در این کرهی خاکی انسانهای بسیاری وجود دارند که دارای گویشهای مختلف، زبانهای مختلف هستند و در شهرهای متفاوت زندگی میکنند. اما تمامی این افراد به عنوان یک انسان شناخته میشوند. اگر در اینجا انسان را به عنوان یک کلاس والد درنظر بگیریم و انسان ایرانی، آفریقایی، چینی و ... را به عنوان کلاس فرزند، متوجه خواهید شد که انسان ایرانی از کلاس والد مشتق شده است. اما انسان ایرانی نحوهی صحبت کردن اش با نحوهی صحبت کردن یک انسان آفریقایی متفاوت است یعنی در واقع دارای رفتار متفاوت هستند. یعنی رفتاری که در شیء والد وجود دارد گاها در شکل فرزند ممکن است تغییر کند. در زبان برنامهنویسی شیءگرا به پلی مورفیسم یا Polymorphism تغییر رفتار یک شیء در اشیاء فرزند آن گفته میشود. که در زبان برنامهنویسی #C این تغییر رفتارها به کمک تعریف متدها به صورت virtual و override است و در فصول بعدی به تفصیل آنها را توضیح خواهیم داد.
با مطالعهی مفاهیم فوق دید کلی نسبت به برنامهنویسی شیءگرا پیدا کردید که در فصل بعدی (فصل ۱۰) به شما کمک میکند تا درک صحیحی از کلاسها داشته باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.