An ordinary person who writes his thoughts here
آموزش مفاهیم برنامه نویسی شی گرا (بخش دوم)
پیشنیاز دوره:
آموزش مفاهیم برنامه نویسی شی گرا (بخش اول)
به نام خدا
آموزش مفاهیم شی گرایی (بخش دوم)
...
در بخش اول آموزش با مفاهیم کلی برنامه نویسی شی گرا آشنا شدیم از جلسه قبل یک موضوع مانده است که می بایست در این جلسه توضیح داده و سپس به سمت موضوعاتی مهم در برنامه نویسی شی گرا برویم.
ضمنا پیشنیاز این آموزش یادگیری بخش اول آموزش است که می توانید آن را در این لینک مشاهده کنید.
...
خصوصیات (Properties)
در جلسه قبلی صفات (attributes) را معرفی کردیم و این جلسه می خواهیم درباره خصوصیات صحبت کنیم. در واقع شاید فکر کنید که صفات و خصوصیات در زبان فارسی با یکدیگر مترادف اند پس چرا دوباره درباره آنها صحبت می کنیم. ولی در واقع باید بگوییم که شاید این دو واژه با هم مترادف اند اما در مفاهیم برنامه نویسی این دو با هم متفاوت اند گرچه با یکدیگر در ارتباط اند.
در حقیقت خصوصیات راهی برای دسترسی به صفات است. اگر بخواهیم خلاصه ای از صفات ماشین را بگوییم می توانیم میزان وجود سوخت در باک ماشین را مثال بزنیم.
حالا اگر شما بخواهید میزان سوخت آن ماشین را دریابید آیا لازم است که باک را باز کرده و از درون باک اندازه بگیرید.
مطمئنا خیر. بلکه از روی نشانه ای که در ماشین تعبیه شده حدود میزان سوخت موجود در ماشین را می فهمید، یا برای فهمیدن میزان سرعتی که ماشین در حال حاضر دارد مجبور به حل محاسبات فیزیکی نیستید و به راحتی می توان از روی کیلومتر شمار ماشین سرعت ماشین را تشخیص داد.
در واقع کیلومتر شمار راه میانبری برای فهمیدن صفات ماشین است.
رابطه صفات و خصوصیات نیز همین می باشد. در واقع ما صفات شی خود را پنهان کرده و به صورت خصوصی تعریف می کنیم و از طریق خصوصیات به آن دسترسی پیدا می کنیم. دلیل این امر را هنگامی که دست به کد شدید و به اینگونه مسائل برخوردید خواهید فهمید.
...
معرفی اصول برنامه نویسی شی گرا
تا به حال دید خوبی نسبت به برنامه نویسی شی گرا پیدا کرده اید اما اکنون به مسائلی مهم می رسیم که به آن می گویند 4 اصل برنامه نویسی شی گرا. اگر برنامه نویسی شی گرا را به صندلی تشبیه کنیم این 4 اصل 4 پایه ی این صندلی می باشد.
این 4 مفهوم عبارت اند از:
1. انتزاع (Abstraction)
2. وراثت (Inheritance)
3. چندریختی (Polymorphism)
4. کپسوله سازی (Encapsulation)
در بخش دوم آموزش مفاهیم پایه برنامه نویسی شی گرا ما درباره انتزاع و ارث بری صحبت خواهیم کرد و چندریختی و کپسوله سازی را در جلسه بعدی تشریح خواهیم نمود
...
انتزاع (Abstraction)
این مفهوم را در جلسه اول به صورت نامحسوس در میان مطلب جا داده ایم و برای شما توضیح داده ایم اما توضیح بهتر آن خالی از لطف نیست.
انتزاع در فارسی به معنای تجرد است.
با یک مثال اصل انتزاع را توضیح می دهیم. فرض کنید وقتی کلمه مبل را می شنوید یاد چه چیزی می افتید.
قطعا قریب به اکثر افراد یک شی 4 پایه دار را تصور می کنید که می توان روی آن نشست و روی آن طرح و نقشی هم ممکن است داشته باشد.
حال این فرض می تواند روی هزاران شی به نام مبل بنشیند که اتفاقا ویژگی های متفاوتی هم دارند مثلا یکی قرمز است یکی سفید و دیگری مشکی. یا طرح مبل های مختلف با هم متفاوت است در واقع این اشیاء هرکدام ویژگی های متفاوتی دارند اما در نهایت به همه ی آنها مبل می گویند.
این تفکر که مبل یک شی چهار پایه است که می توان روی آن نشست را انتزاع می گویند در حالی که هر مبل ممکن است ویژگی های متفاوتی داشته باشند.
انتزاع یکی از مهم ترین اصول برنامه نویسی شی گراست.
...
وراثت (Inheritance)
حتما می دانید که پسر از پدر خود که والد اوست ارث می برد.
در برنامه نویسی نیز این مسئله وجود دارد. فرض کنید کلاسی به نام Car یا ماشین داریم. حال فرض کنید بخواهیم کلاسی به نام کامیون تعریف کنیم. طبیعتا کامیون دارای یک سری از ویژگی های کلاس ماشین است. حالا آیا لازم است تمامی کد هایی که قبلا در کلاس ماشین نوشته ایم و با کلاس کامیون مشترک است را دوباره بنویسیم؟
خبر خوب این است که نه؛ بلکه می توانید به راحتی از کلاس ماشین برای کلاس کامیون ارث ببرید و تمامی ویژگی هایی که نیاز داریم را در کلاس کامیون داشته باشیم.
استفاده از اصل وراثت موجب خوانایی بیشتر کد و صرفه جویی در نوشتن کد و وقت برنامه نویس می شود.
خب دوستان بخش دوم این آموزش نیز به پایان رسید. در جلسه بعدی چندریختی و کپسوله سازی را توضیح خواهیم داد.
ضمنا باز هم این نصیحت را از خودم به شما می کنم که شما باید برای فهم عمیق و کامل برنامه نویسی شی گرا قطعا به یک زبان شی گرا مثل پایتون، جاوا، سی شارپ و ... کد نویسی کنید تا مطالب را کاملا درک کنید و فقط با خواندن مقاله نمی توان کار را به جایی رساند گرچه بسیار پر فایده است.
با تشکر.
منابع:
· کتاب چگونه با visual C# 2010 برنامه نویسی کنیم اثر «هارویام دیتل» و «پالجی دیتل» ترجمه «مهندس علیرضا انصاری»
ضمنا می توانید برای حمایت مالی (دونیت) از ما برای انگیزه گرفتن برای تولید محتوا از این لینک استفاده کنید:
ضمنا برای فهم بهتر این مقاله بخش اول را حتما بخوانید:
مطلبی دیگر از این انتشارات
آموزش کدنویسی در فلوئنت | آموزش UDF نویسی در فلوئنت از صفر
مطلبی دیگر از این انتشارات
برنامه نویسی اندروید و پیشنیازهای یادگیری آن چیست؟
مطلبی دیگر از این انتشارات
یونیت تست در یونیتی (قسمت دوم)