w3designw3design
  • صفحه اصلی
  • وبلاگ
  • خدمات ما
    • طراحی سایت
    • سئو و بهینه سازی سایت
    • کارت ویزیت آنلاین
    • پنل پیامکی
  • نمونه کارها
  • درباره ما
  • تماس با ما
Search
  • صفحه اصلی
  • وبلاگ
  • خدمات ما
    • طراحی سایت
    • سئو و بهینه سازی سایت
    • کارت ویزیت آنلاین
    • پنل پیامکی
  • نمونه کارها
  • درباره ما
  • تماس با ما
  • درباره ما
  • وبلاگ
برنامه نویسی شی گرا

برنامه نویسی شی گرا (oop ) چیست؟

writer22020-11-15T08:27:00+03:30
By writer2 برنامه نویسی

برنامه نویسی شی گرا (oop ) چیست؟

🔅برنامه نویسی شی گرا (Object Oriented Programming) که به اختصار OOP نیز نامیده می‌شود، در حقیقت نوعی منطق یا الگوست که برگرفته از زندگی روزمره‌ی ما است. در اطراف خود به هر کجا بنگرید اشیایی را می بینید. پس انسان بر اساس اشیا فکر می کند. در برنامه نویسی شی گرا نیز ما می کوشیم که مفاهیم برنامه نویسی را، همانند اشیای دنیای واقعی مدل کنیم. زیرا ذهن انسان توانایی بالایی در انتزاع یا تجرید دارد و مدل سازی اشیا دارد.

برنامه نویسی شی گرا (oop ) چیست؟

🔅OOP یا Object Orient Programming شیوه ای از برنامه نویسی است که موجودیت‌های نرم افزار را به صورت شی یا Object می‌بیند. قبل از ظهور برنامه نویسی شی گرا ، برنامه‌ها اغلب به شکل Procedural یا رویه ای نوشته می‌شد. در برنامه نویسی رویه ای برنامه‌ها به توابع تقسیم می‌شدند. یعنی برنامه از متغیرهایی که اطلاعات را ذخیره و توابعی که عملیات مورد نظر را روی اطلاعات انجام می‌دادند تشکیل می‌شد.

برنامه نویسی شی گرا (oop ) چیست؟

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

🔅پس از ظهور برنامه نویسی شی گرا توابع و متغیرهای مرتبط در واحد هایی به اسم کلاس (Class) تجمیع شدند. اشیا از روی این کلاس‌ها ساخته می‌شوند. و به این ترتیب صاحب متدها (Method) و ویژگی‌های (Attribute) آن کلاس‌ها می‌شوند. همینطور کلاس‌ها می‌توانند ویژگی‌ها یا توابع را از یکدیگر به ارث ببرند. به این ویژگی ارث بری یا Inheritance می‌گوییم.

برنامه نویسی شی گرا (oop ) چیست؟

مفاهیم پایه ای در شی گرایی

⭕️شی (Object) : ﺷﯽ ﻳﮏ ﻣﻮﺟﻮدﯾﺖ ﻓﯿﺰﯾﮑﯽ ﯾﺎ ﻣﻔﻬﻮم ﮐﻠﯽ اﺳﺖ ﺑﮕﻮﻧﻪ ای ﮐﻪ دارای ﻫﻮﻳﺖ ﺑﻮده و ﻗﺎدر ﺑﻪ ﺑﺮوز رﻓﺘﺎر و ﺛﺒﺖ ﺣﺎﻻت ﺧﻮد ﻣﯽ ﺑﺎﺷﺪ.

⭕️صفت (property):  ﻫﺮ ﺷﯽ ﯾﮑﺴﺮی ﺧﺼﻮﺻﯿﺎت دارد ﮐﻪ ﺑﻪ آﻧﻬﺎ  ﺻﻔﺖ ﮔﻔﺘﻪ ﻣﯽ ﺷﻮد. ﮐﻪ در واﻗﻊ ﯾﮏ مقدار و ارزش مشخصی برای آن به ازای هر شی می تواند وجود داشته باشد. مانند طول، ارتفاع، رنگ و … .

⭕️روش (Method) : هر شی در واقع یک سری رفتار دارد که به آن ها روش یا متد، گفته می شود. ﻣﺘﺪ در واﻗﻊ   ﭘﺎﺳﺦ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ آن ﺷﯽ در ﻣﻘﺎﺑل تحریکات ﻣﺤﯿﻂ از ﺧﻮد ﻧﺸﺎن می دهد.

⭕️کلاس (Class) : به مجموعه ای از اشیا که دارای ویژگی و رفتار مشترک باشند، کلاس می گویند. یک class نمونه ی اولیه ای است که هر object از روی آن ساخته می شود.کلاس دانشجو، کلاس انسان، کلاس ماشین و …

کلاس ها مانند نقشه های ساختمان هستند. .ﯾﻚ ﻛﻼس، ﻧﻘﺸﻪ اﯾﺠﺎد ﯾﻚ ﺷﯽ از ﻛﻼس است. همانطور که می توانیم خانه های زیادی از روی یک نقشه بسازیم، می توانیم تعدادی شی از روی یک کلاس، نمونه سازی کنیم.

مفاهیم پایه ای در شی گرایی

اصول برنامه نویسی شی گرا(oop)

1- تجرید یا انتزاع (Abstraction)
2- كپسوله سازی (Encapsulation)
3- وراثت (Inheritance)
4- چند ریختی (Polymorphism)

⚜️تجرید یا انتزاع (Abstraction):در این اصل نکته اصلی نمایش جزییات و امکانات مرتبط و مورد نیاز به کاربر و پنهان کردن مواردی است که کاربر نیازی به مشاهده و اطلاع از وجود آنها ندارد. مثال‌های بسیاری دراطراف ما وجود دارد که با این تعریف و اصل هماهنگ می‌باشد. همه شما با ریموت کنترل تلویزیون کار کرده‌اید و حتی شاید جای تمام دکمه‌های آن راهم حفظ باشید و به قول معروف چشم بسته با آن کار می‌کنید! صدا رو کم و زیاد می‌کنید، کانال را تغییر می‌دهد و تمام مواردی که برای شما درنظر گرفته شده و در دسترس شما هست را انجام می‌دهید. اما آیا می‌دانید و یا نیازی هست بدانید در پشت صحنه با فشردن هر کدام از این دکمه‌ها واقعا چه روندی انجام می‌شود و چه اتفاقاتی خواهد افتاد تا عملکرد آن دکمه انجام و شما نتیجه آن را ببینید؟

⚜️زمانی که در حین رانندگی ترمز می‌کنید چطور؟ آیا نیازی هست بدانید چطور سرعت ماشین کاسته می‌شود؟ اگر هم بدانید آیا نیازی هست درگیر آن اتفاقات بشوید؟ زمانی که دکمه پاور کامپیوتر، لپتاپ ، موبایل و … نیازی هست درگیر اتفاقات پشت صحنه آن بشوید؟! به طور قطع جواب این سوال‌ها و خیلی از سوال‌هایی که از این دسته هستند خیر می‌باشد. در نتیجه ما هم به عنوان طراح و یا برنامه‌نویس باید این اصل مهم را رعایت و به کار ببریم.

اصول برنامه نویسیoop

⚜️كپسوله سازی (Encapsulation):اصل کپسوله‌سازی بسیار نزدیک به اصل تجرید یا انتزاع می‌باشد. در این اصل می‌گوییم که موارد مرتبط به هم باید در یک ساختار قرار بگیرند. این ساختار را در مفاهیم شی‌گرایی کلاس می‌نامیم . یک کلاس شامل خصوصیات، رفتار‌ها و توابع مرتبط با هم می‌باشد که در قالب یک واحد گرد هم آمده‌اند. در این اصل با استفاده از دادن حق دسترسی به اجزای مختلف کلاس امکان پنهان کردن جزییات درون آن را با دنیای بیرون خواهیم داشت. چرا که مواردی وجود دارد که نیازی نیست از خارج از کلاس، کسی از وجود آنها خبر داشته باشد. دقیقا مثل یک قرص کپسول، که داخل آن قابل مشاهده نمی‌باشد.

ان‌طور که می‌بینید این دو اصل خیلی به هم نزدیک هستند به زبان دیگر اصل Abstraction می‌گوید چه جزییاتی باید قابل مشاهده باشند و اصل Encapsulation میزان حق دسترسی آن جزییات را مشخص می‌کند. درواقع می‌توان گفت پیاده‌سازی سطح انتزاع مورد نظر با کپسوله‌سازی انجام می‌شود.

⚜️وراثت (Inheritance):مفهوم ارث‌بری عبارت است از مشتق کردن یک کلاس جدید از کلاس موجود و ارث‌بردن تمام ویژگی‌های قابل دسترس آن و افزودن ویژگی‌های جدید به کلاس مشتق شده. همان‌طور که در تصویر نیز مشخص است رابطه ارث‌بری به رابطه is-a معروف است. به این معنی که گفته می‌شود کلاس فرزند هست از نوع کلاس پدر. به عنوان مثال ماشین مسابقه‌ای از نوع ماشین می‌باشد. نکته دیگری که در پیاده‌سازی اصل ارث‌بری در زبان سی‌شارپ وجود دارد این است که هر کلاس فقط می‌تواند فرزند یک کلاس دیگر باشد. که در اصطلاح گفته می‌شود سی‌شارپ فقط از Single Inheritance پشتیبانی می‌کند.

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

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

اصول برنامه نویسیoop

⚜️چند ریختی (Polymorphism) : اصل چندریختی نیز یکی دیگر از اصول کاربردی و مهم شی‌گرایی می‌باشد. به این معنی است که یک موجودیت دارای چندین شکل یا رفتار باشد. همان‌طور که ما در برابر والدین یک نوع رفتار و در برابر دوست و همکار نوع دیگری رفتار خواهیم کرد.

⚜️یکی از ملموس‌ترین و معروف‌ترین مثال‌هایی که دراین مورد می‌توان داشت زمانی است که مسئله شما محاسبه محیط و مساحت شکل‌های هندسی متفاوت می‌باشد. یکی از معروف‌ترین روش‌ها داشتن یک کلاس والد می‌باشد به نام Shape که دارای متد‌های محاسبه محیط و مساحت می‌باشد. حال برای هر شکل هندسی مثل مربع و مستطیل و دایره کلاس جداگانه‌ای تعریف کرده و متد‌های والد را با توجه به فرمول هر شکل پیاده‌سازی می‌کنیم. در نتیجه ما متد‌هایی داریم که رفتارهای گوناگونی دارند بر اساس اینکه کدام یک از فرزندان آنها را فراخوانی می‌کنند.

اصول برنامه نویسی oop

مدل شی گرا

💢ﯾﮏ ﻣﺪل ﺷﯽ ﮔﺮا ﻣﺠﻤﻮﻋﻪ ای اﺳﺖ از اﺷﯿﺎء و ﮐﻼس ﻫﺎ ﮐﻪ در ﺟﻬﺖ ﭘﯿﺎده ﺳﺎزی رﻓﺘﺎر ﮐﻞ ﺳﯿﺴﺘﻢ ﺑﻪ ﯾﮑﺪﯾﮕﺮ ﭘﯿﻐﺎم ﻣﯽ ﻓﺮﺳﺘﻨﺪ و اﻋﻤﺎﻟﯽ را انجام ﻣﯽ دﻫﻨﺪ .ﯾﮏ ﺷﯽ، ﺳﺎﺧﺘﻤﺎن داده و رفتار مربوطه اش را یک جا و به طور مجتمع در خود نگاه می دارد.

مدل شی گرا

مزایای برنامه‌نویسی شی گرا چیست؟

✳️افزایش امنیت برنامه

✳️کاهش هزینه نگهداری

✳️قابلیت استفاده مجدد

✳️تحلیل ساده‌تر برنامه

✳️قابلیت سازمان دهی بهینه تر کدها

✳️عدم نیاز به نوشتن کدهای تکراری و قابلیت‌هایی که قبلا پیاده‌سازی شده‌اند و صرف جویی در استفاده از منابع

✳️قابلیت تقسیم برنامه به برنامه‌های کوچک تر اما مستقل

مزایای برنامه‌نویسی شئ‌گرا چیست؟

Share this post

Facebook Twitter LinkedIn Google + Email

Author

writer2

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


Related Posts

Net core. چیست و چه مزایایی نسبت به dot net دارد؟

NET CORE. یا دات نت کور چیست؟ NET Core. پلتفرمی چندسکویی و متن باز است که برای ایجاد نرم‌افزارهای تحت... read more

دیتابیس

دیتابیس چیست ؟

💠دیتابیس چیست ؟ 💠 دیتابیس یا پایگاه داده یا همان بانک اطلاعاتی، مجموعه‌ای از داده‌هاست که در جدول‌هایی با ساختار... read more

فریم ورک

فریم ورک چیست؟

فریم ورک فریم ورک یک چهارچوب نرم‌افزاری است که توسعه دهنده (developer) آن را فراخوانی کرده و از آن استفاده... read more

زبان برنامه نویسی مفسری

زبان برنامه نویسی مفسری چیست؟

زبان برنامه نویسی مفسری زمانی که ما یک برنامه با زبان سطح بالا می‌نویسیم برای مثال C ،C++ ، java... read more

تگ Title

تگ Title چیست؟

تگ Title (عنوان) چیست؟ تگ title (عنوان) یکی از عناصر HTML است که مشخص میکند عنوان یک صفحه وب چیست.... read more

زبان برنامه نویسی perl

زبان برنامه نویسی perl چیست؟

زبان برنامه نویسی perl زبان برنامه نویسی Perl یک زبان تفسیری، سطح بالا و شی گرا است که برای برنامه... read more

زبان c

همه چیز درباره زبان برنامه نویسی C

زبان c چیست؟ زبان c از زبان های برنامه نویسی محبوب و قدرتمند است که تعداد زیادی برنامه نویس رو... read more

زبان های کامپایلری

تفاوت زبان های کامپایلری و مفسری

تفاوت کامپایلر و مفسر مهمترین تفاوتی که بین زبان های کامپایلری و مفسری وجود دارد روشی است که آنها کد... read more

front end web developer

برنامه نویسی front end چیست و به چه کسی فرانت اند کار میگویند؟

برنامه نویسی front end چیست؟ شاید شما هم جزو کسانی باشید که بارها عبارات فرانت اند و بک اند را... read more

MySQL

MySQL چیست؟

MySQL چیست؟ MySQL یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) است که امکان ذخیره سازی، جستجو، مرتب کردن و... read more

جستجو

Follow Us

Facebook Pinterest Instagram Linkedin Telegram

آخرین مطالب

افزونه Beaver Builder
افزونه Beaver Builder
افزونه BulletProof Security
افزونه BulletProof Security
افزونه Crisp Live Chat
افزونه Crisp Live Chat
خطای INSTALL ERROR
خطای INSTALL ERROR هنگام راه‌اندازی بسته نصبی قالب وردپرس
افزونه Elementor
افزونه Elementor
خطای Internal Server Error 500
آموزش رفع خطای Internal Server Error 500
افزونه Visual Composer
افزونه Visual Composer
بازیابی رمز عبور
آموزش غیرفعال کردن بازیابی رمز عبور در وردپرس
دیتابیس هاست
آموزش تغییر رمزعبور و نام کاربری از طریق دیتابیس هاست
افزونه Cerber Security & Antispam
افزونه Cerber Security & Antispam

دسته‌ها

  • آموزش
  • آموزش وردپرس
  • بازاریابی محتوا
  • برنامه نویسی
  • تبلیغات
  • دسته‌بندی نشده
  • سئو
  • سئو خارجی
  • شبکه
  • طراحی اپلیکیشن
  • طراحی سایت
  • کامپیوتر و لپ تاپ
  • گرویتی فرم
  • لینک سازی
  • نرم افزار

بایگانی‌ها

  • مارس 2021
  • فوریه 2021
  • ژانویه 2021
  • دسامبر 2020
  • نوامبر 2020
  • اکتبر 2020
  • سپتامبر 2020

دسترسی سریع

  • خانه
  • وبلاگ
  • نمونه کارها
  • درباره ما
  • طراحی سایت
  • سئو و بهینه سازی
  • کارت ویزیت آنلاین
  • پنل پیامکی

عضویت در خبرنامه

    ۹۱۰۰-۱۰۱۱(۰۱۳) info@w3design.ir
    تمامی حقوق مادی و معنوی این سایت برای تیم w3design محفوظ است.