محل انجام پروژه های برنامه نویسی

انواع پروژه های سی پلاس پلاس ، سی شارپ ، میکروکنترلر

محل انجام پروژه های برنامه نویسی

انواع پروژه های سی پلاس پلاس ، سی شارپ ، میکروکنترلر

چهارشنبه, ۲۷ خرداد ۱۳۹۴، ۰۹:۲۶ ب.ظ

۲

آموزش برنامه نویسی شی گرا - قسمت اول

چهارشنبه, ۲۷ خرداد ۱۳۹۴، ۰۹:۲۶ ب.ظ

سلام ...
قصد درام در چند جلسه بصورت کاربردی و در عین حال با زبان ساده مفاهیم شی گرایی را بیان کنم و در انتها یک کلاس ساده رو باهم پیاده سازی کنیم .
این قسمت تعریف کلی از شی گرایی و مفاهیم اولیه را مورد بررسی قرار میدهیم .


مفهوم شیء گرایی چیست؟
به طور خلاصه و فنی، برنامه نویسی شیء گرا همانند برنامه نویسی ساخت یافته از ساختمان های داده و توابع مرتبط با آنها تشکیل شده است که با فعالیت در کنار هم برنامه کاربردی را می سازند. شیء گرایی مفاهیم جدیدی از جمله داده های انتزاعی، ارث بری، کپسوله کردن و چندریختی است.

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

اگر داده ها به طور مناسب پنهان سازی شوند و برای هر تغییری در سیستم، از تابعی خاص و با دسترسی خاص استفاده شود، در این صورت با بزرگ شدن برنامه، زمان رفع ایراد آن بیشتر نمی شود و در صورتی که یک مورد منطقی در برنامه رخ داد، اصلا مجبور نیستید از خط اول تا خط آخر برنامه را بخوانید. کلاس هایی که به آن داده دسترسی دارند مشخص است، تنها توابعی که می توانند آن داده را تغییر دهند مشخص است و گاهی اوقات حتی نیاز نیست کد بیرون کلاس خود را هم نگاهی بیندازید.

پایان قسمت اول 

دوستان با نظراتتون مارو همراهی کنید ...

نظرات  (۲)

لطفا قسمت بعدی آموزش رو سریعتر بزارین
خیلی جالب بود
پاسخ:
ممنون از توجهتون
انشاءلله به زودی ...
آموزش خوب و نحوه بیان مطالب بسیار عالیه 

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی