برنامه نویسی شی گرا یا Object Orient Programming چیست؟



visibility  
mode_comment   ۶

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

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

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

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

به عنوان مثال گوشی خود را در نظر بگیرید. فرض کنید مدل گوشی شما SumsungS10 باشد. کلاس گوشی SumsungS10 از کلاس گوشی به ارث می برد. کلاس گوشی دارای ویژگی ها یا Attribute های زیر است:

  • رنگ
  • رزولوشن
  • رزولوشن دوربین
  • حافظه
  • و...

همینطور تابع های زیر را دارد:

  • شارژ شدن
  • عکس گرفتن
  • دریافت SMS
  • و...

کد زیر یک کلاس خالی گوشی تلفن همراه را نمایش می دهد:

حال با کلمه کلیدی Extends ویژگی ها و متدهای کلاس گوشی موبایل توسط کلاس SumsungS10 به ارث برده می شود:

کلاس گوشی SumsungS10 با به ارث بردن از کلاس گوشی تمام این ویژگی ها و توابع را به ارث می برد. علاوه بر آن دارای ویژگی Gadget نیز هست. گوشی SumsungS10 شما یک نمونه یا Instance از کلاس گوشی SumsungS10 است و با ساخت یک Object از کلاس گوشی SumsungS10 به وجود می آید.

شی گرایی

قلمرو متغیر ها در شی گرایی

در کدهای بالا مشاهده کردید که در تعریف attribute ها و متدها از کلمات public، protected و private استفاده کردیم. ما با استفاده از این کلمات کلیدی قلمرو attribute ها و متدهای کلاس را در برنامه نویسی شی گرا تعریف می کنیم. به این کلمات کلیدی Access Modifier می گوییم. به طور خلاصه:

  • Public: به متغیرها و متدهایی گفته می شود که از خارج کلاس قابل دسترسی هستند.
  • Protected: به متغیرها و متدهایی گفته می شود که فقط از کلاس هایی قابل دسترسی هستند که از کلاس فعلی ارث برده اند.
  • Private: به متغیرها و متدهایی گفته می شود که از خارج کلاس قابل دسترسی نیستند.

شی گرایی

شی گرایی در دنیای واقعی

شاید با خودتان بگویید در دنیای واقعی برنامه نویسی شی گرا کمتر اتفاق می افتد که نیاز داشته باشید از کلاس گوشی موبایل شی بسازیم. در دنیای واقعی تمام موجودیت های برنامه می توانند به صورت شی دیده شوند. حتی می توان هر رکورد از جداول پایگاه داده را به صورت شی دید (ORM). مثل کلاس پیام یا Message که انواع مختلف کلاس Message مانند BroadcastMessage و PrivateMessage از آن به ارث می برند و...

متخصص اندروید
اپ های اندروید خودت رو بساز و درآمد کسب کن برنامه نویسی اندروید الان خیلی پتانسیل کسب درآمد داره. اگر بتونید تو این زمینه متخصص شید، می تونید به راحتی از طریق مارکت ها، پروژه های فریلنسری و یا استخدام در شرکت های مطرح به درآمد عالی برسید. ما در دوره متخصص اندروید شما رو به یک برنامه نویس حرفه ای اپ های اندروید تبدیل می کنیم: متخصص اندروید arrow_back
7Learn Experts
comment دیدگاه کاربران
حامد replyپاسخ

سلام ، ممنون از مقاله خوبتون
بنظرم توی پوستر مقاله جای functional با شئ گرا جا به جا شده، اینطور نیست ؟!

زهرا فرحمند

سلام حامد عزیز. در تصویر ترتیب خاصی چه از نظر زمانی و چه برتری مد نظر نیست. ممنون از شما که برای بهتر کردن مقالات به ما کمک می کنید 🙂

erfan.b2000 replyپاسخ

خیلی خوب بود واقعا استفاده کردم…

erfan.b2000 replyپاسخ

لطفا بحثو بسطش بدید و به مسائل وراثت operator و …. در شی گرایی هم بپردازید
با تشکر فراوان

محمد نقلانی replyپاسخ

مثل همیشه عالی – اگر امکانش هست این موارد ردو بسط بدیم و وارد مبحث MVC هم بشیم

زهرا فرحمند

سلام آقای نقلانی عزیز. حتما این اتفاق خواهد افتاد ممنون از همراهیتون 🙂

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :