آشنایی با مفاهیم و ویژگیهای پایه شی گرایی در سی پلاس پلاس
جلسات دوره
![مهدی عباسی](/Images/Professor/6d4deffae71a42a7b6ef8f7f942aa4ad.webp)
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آشنایی با مفاهیم و ویژگیهای پایه شی گرایی در سی پلاس پلاس:
مهمترین و ارزشمندترین مبحث در زبان ++C، مبحثی به نام شی گرایی (object oriented programming) میباشد. در این جلسه میخواهیم به طور مفصل و جامع در مورد شی گرایی صحبت کنیم. این مبحث کاربردی در همه زبانهای برنامه نویسی مشترک میباشد. قبل از اینکه زبان ++C به وجود آید زبان C وجود داشته است، که یک زبان با قاعده و ساختار ساخت یافته بوده است. در واقع برنامههایی که به صورت ساخت یافته نوشته میشدند به این شکل بودند که یک برنامه به چندین بخش مختلف تقسیم میشدند که به آنها function یا توابع گفته میشد و توابع مختلف میتوانستند کارهای مختلفی انجام دهند و به جای اینکه یک بلاک طولانی از کد داشته باشند در برنامه نویسی ساخت یافته این بلاک ها به چندین بلاک تقسیم می شدند.
در واقع برنامه نویسان اولیه همه کدهای برنامه را داخل یک بلاک قرار میدادند و این روش درستی نبود و بعدها برنامه را بلاک بندی کردند. همان توابعی که نوشته میشد و برای هر کدام اسمی تعیین می کردند. اما برنامه نویسی ساخت یافته یک مشکل اساسی داشت آن هم مشکل در توسعه نرم افزار یا اپلیکیشن بود به این معنی که یک برنامه نوشته میشد کارفرما یک سری امکانات را میخواست این برنامه نوشته میشد و در اختیار کار فرما قرار می گرفت و بعد از یک مدتی کارفرما میخواست که امکانات دیگری به آن اضافه شود. به همین جهت برای توسعه نرم افزار نیاز بود خیلی تغییرات در ساختار برنامه اعمال شود که بسایر زمان بر بود.
در برنامه نویسی ساخته یافته برنامه نویسی مبتنی بر کد بود اما در برنامه نویسی شی گرایی توسعه نرم افزار راحت تر است به خاطر این که دیگر برنامه نویسی مبتنی بر کد نیست، مبتنی بر داده میباشد. در این مبحث تمرکز بر این است که چه اشیایی و موجودیتهایی داریم و هر موجودیت چه صفتها و ویژگیهایی دارد و چه رفتاری می تواند انجام دهد و معادل رفتار و صفتهای آن شی را که در بیرون است را در کامپیوتر شبیه سازی می کنیم، وقتی شبیه سازی می کنیم آن وقت خیلی راحت میتوانیم با آنها کار کنیم. برنامه نویسی شی گرا با هدف پیاده سازی موجودیتهایی در دنیای واقعی مانند وراثت، پنهان کردن، چند شکلی و غیره در برنامه نویسی انجام می شود.
هدف اصلی OOP اتصال دادهها و عملکردهایی است که روی آنها کار می کند به طوری که هیچ قسمت دیگری از کد به غیر از آن تابع نمی تواند به این دادهها دسترسی پیدا کند. برای مثال در بانک یک حساب بانکی که برای شما نگهداری میشود شما به عنوان یک مشتری ازبانک، یک شی محسوب میشوید که اطلاعات و توانمندیهای شما در آنجا ثبت میشود. اطلاعات، دادههای ما میشوند و توانمندیها، عملکردهای ما میباشند. در واقع به مفهومی به اسم اعضای کلاس میرسیم. یک کلاس میتواند یک سری داده و تابع داشته باشد که کارهایی روی دادهها انجام میدهند. برای مثال یک استاد دارای دادهها یا اطلاعات نام، نام خانوادگی، شماره تلفن، کدملی و ... می باشد و در سیستم آموزش دانشگاه می تواند حضور وغیاب را ثبت کند و نمره تغییردهد.
زبان شی گرایی دارای 4 ویژگی میباشد:
Encapsulation (کپسوله سازی یا مخفی سازی): شما با نوشتن کلاسها میتوانید دادهها را بسته بندی کنید و از دید و دخالت کردن دیگران در دادهها جلوگیری کنید. وقتی کلاسی با نام دانشجو دارای یک سری داده تعریف می کنیم و عملا این کلاس را به یک فضای بسته تبدیل میکنیم که هرکسی به راحتی نتواند به آن دسترسی داشته باشد.
Polymorphism (چند ریختی): به معنی استفاده از شکلهای مختلف یک تابع در فراخوانیهای مختلف میباشد. این امکان را میدهد که بتوانیم یک سری تابعها با شکلهای یکسان تعریف کنیم که میتوانند رفتارهای متفاوت انجام دهند و در زمان فراخوانی تعیین کنیم هر تابع چه کاری انجام دهد.
Inheritance (ارث بری): وراثت یکی از مهمترین ویژگیهای برنامه نویسی شی گرا است. یعنی یک کلاس خصوصیات یک کلاس دیگر را ارث بری کند. با این ویژگی میتوانیم از تکراری نوشتن ویژگیها و رفتارها جلوگیری کنیم.
Abstraction (انتزاعی سازی): با استفاده از این ویژگی میتوانیم این امکان را به وجود بیاوریم که یک سری از رفتارها از دید کاربر مخفی شوند و در واقع منِ استفاده کننده از یک رفتار، از جزییات و پیاده سازی آن خبری نداشته باشم و پنهان میباشد.
دوست درسمنی عزیز، امیدواریم از این آموزش لذت برده باشید.
برای یادگیری این مبحث میتوانید این درس را تهیه کنید و از فایلها و ویدئو این بخش استفاده کنید.
شما عزیزان میتوانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزشهایمان یاری کنید.
با امید موفقیت و شادی برای شما دوست درسمنی عزیز
انجمن ++C کاران درسمن
نظرات دانشجویان
![کاربر درسمن](/Images/Comment/UserE.png)
سلام ببخشید جلسه ۱۵ رو میشه قیمتش رو اصلاح کنید. ۵۰۰۰۰ تومان یا ۵۰۰۰؟
![پشتیبانی 1](/Images/PersonImage/nophoto.png)
سلام ممنون از اطلاع رسانیتون، بله اشتباه شده بود اصلاح شد.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.