دنیای فناوری

با ما به روز باشید.

دنیای فناوری

با ما به روز باشید.

طبقه بندی موضوعی

۲ مطلب با کلمه‌ی کلیدی «oop» ثبت شده است

  • ۰
  • ۰

یکی از مفاهیم بسیار مهم در برنامه نویسی شیء گرا، ارث بری یا inheritance است که به آن وراثت هم می گویند.

برای داشتن برنامه های کاربردی و تمیز و قابل توسعه نیاز است که این مفهوم را یاد بگیرید و از آن استفاده کنید.

مفهوم مهم این مقاله، وراثت یا Inheritance نام دارد. برای این که مفهوم اصلی وراثت در برنامه نویسی را متوجه شوید، این تعریف از دانشنامه ویکی پدیا را مطالعه کنید:

 

وراثت در برنامه‌نویسی شبیه وراثت بیولوژیکی است که در آن فرزندان صفاتی را از والدین به ارث می‌برند. در برنامه نویسی شیء گرا می‌توان با وراثت از کلاس موجود کلاسی را ایجاد کرد که داده‌ها و متدهای کلاس قبلی را به ارث ببرد. برای فرزند یک کلاس می‌توان توابع و متغیرهای جدید تعریف کرد یا توابع مربوط به والد را دوباره‌نویسی (override) نمود.

 

در ارث بری در زبان سی پلاس پلاس ما با سه نوع متفاوت با نام های عمومی یا public، خصوصی یا private و محافظت شده یا protected در ارتباط هستیم.

اما در این مقاله می خواهیم بدانیم که مفهوم هر کدام چیست؟

inheritance example

در این تصویر نیز کلاس پایه حیوان داریم که کلاس های دیگر با نام های Cow و Cat و Dog از آن ارث بری می کنند.

public و یا عمومی بودن به چه معناست؟

متد ها و ویژگی هایی که در مفهوم وراثت به عنوان پابلیک معرفی می شوند ( قبل از آن ها عبارت public به همراه : می آید) قابل دسترسی در کلاس های خارجی نیز هستند. اعضای public در کلاس پایه در هر جایی که یک شی از کلاس پایه یا کلاس های مشتق آن وجود دارد قابل دسترسی است.

private چیست؟

اگر شما در وراثت عضوی از کلاس را به عنوان private یا خصوصی تعریف کنید، دیگر در هیچ کلاس دیگری قابل دسترسی و استفاده نیست. این عضو فقط داخل همین کلاس قابل دسترسی و استفاده است و در امن ترین حالت ممکن قرار دارد. به عنوان مثال اگر شما متد sum در کلاس A از نوع خصوصی قرار دهید، دیگر پس از ساخت یک شی از کلاس B به آن دسترسی نخواهید داشت.

protected چیست؟

می توانیم بگوییم protected در ارث بری مفهومی ما بین publicو private است. به این معنی که متدها و اعضای با این ویژگی فقط در همان کلاس و یا کلاس های فرزند آن قابل دسترسی هستند.

  • سیده زهرا حسینی
  • ۰
  • ۰

شیء گرایی چیست

یکی از معروف‌ترین و مهم‌ترین مدل‌های برنامه نویسی، برنامه نویسی شیء گرا است. برنامه نویسی شیء گرا و یا OOP که مخفف عبارت Object Oriented Programming است برخلاف اسم عجیب و غریبش اصلا مفهوم سختی نیست. بلکه مفهومی بسیار کمک کننده و محبوب در میان برنامه نویسان است.

OOP

در این مقاله شما را با این مفهوم بسیار کاربردی و البته مهم آشنا می کنیم.

برنامه نویسی شیء گرا

شیء گرایی برای اولین بار در سال 1960 میلادی مطرح شد. این مفهوم که در زندگی روزمره ما هم نقشی اساسی دارد، انقلابی بزرگ در برنامه نویسی ایجاد کرد. در این نوع از مدل سازی در برنامه نویسی، همه چیز را در اشیا و کارهایی که انجام می دهند (رفتار آن ها) مدل سازی می کنیم. در واقع زندگی حقیقی خود را در برنامه نویسی شبیه سازی می کنیم.

دنیای شیء گرایی مفهومی مهم به نام کلاس (class) دارد. این مفهوم شامل دو عنصر ویژگی (property) و رفتار (behavior) است. البته از این دو نوع عنصر می تواند تعداد بیشتر از یکی در کلاس وجود داشته باشد. برای این که مفهوم کلاس را بهتر درک کنید اجازه بدهید برایتان مثالی بزنیم.

فرض کنید شما می خواهید کلاسی برای مدل سازی انسان داشته باشید. این کلاس دارای ویژگی هایی است مانند نام و نام خانوادگی و قد و غیره. همین طور انسان دارای رفتارهایی است که ما آن ها را تابع می گوییم. رفتارهایی مانند درس خواندن، راه رفتن و … .

حال برای این که شما بخواهید یک نمونه واضح و ملموس از این کلاس داشته باشید باید از آن کلاس برای خود یک شیء با اسم دلخواه بسازید. مثلا غلی یک انسان است که رفتار و ویژگی های منحصر به فرد خود را دارد.

در برنامه نویسی مفهوم دیگری تحت عنوان “دیزاین پترن یا الگوی طراحی” داریم که در مقاله دیگری به توضیح این مفهوم نیز پرداختیم. برای خواندن این مقاله اینجا را کلیک کنید.

چرا شیء گرایی؟

شیء گرایی

برنامه نویسی شیء گرا انعطاف بسیار زیادی دارد و توسعه آن برای برنامه نویسان بسیار راحت تر است. به همین دلیل از محبوبیت بسیار بالایی نیز برخوردار است. همین موضوع کارایی این مدل از برنامه نویسی را تا حد زیادی افزایش داده است.

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

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

بیان مثال شیء گرایی و توسعه راحت آن

شیء

به عنوان مثال فرض کنید که کلاسی به نام ماشین داریم. این کلاس شامل اتریبیوت ها و یا ویژگی هایی است مانند سرعت، وزن و غیره. همچنین این کلاس می تواند رفتارها و یا توابعی نیز داشته باشد مانند ترمز گرفتن، حرکت کردن، استارت زدن و … که شاکله کلاس ماشین را می سازند.

حال فرض کنید که شما این کلاس را به طور کامل پیاده سازی کرده اید و نیاز دارید که یک ویژگی جدید به ماشین اضافه کنید. مانند ویژگی رنگ ماشین. برای این کار فقط کافی است به بخش تعریف کلاس خود بروید و property رنگ را به کلاس ماشین خود اضافه کنید. این قابلیت در برنامه ها و پروژه های بزرگ بسیار کمک کننده خواهد بود.

در مقاله ای دیگر به شما مفاهیم مهم شیء گرایی مانند ارث بری و public و private و protected  خواهیم پرداخت.

برای مشاهده نمونه کارهای ما در تیم ابرمتن به صفحه اصلی سایت ابرمتن  سر بزنید.

  • سیده زهرا حسینی