کنکور کامپیوتر
0
ورود | ثبت نام
نظرات
اشتراک
بالا
علاقه‌مندی

اشتراک
 

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

این صفحه عالی به معرفی برنامه نویسی شی گرا پرداخته و توضیح داده شی گرایی یا همان object oriented یا OPP چیست؟ همچنین مزایای برنامه نویسی شی گرا را بیان کرده

برنامه نویسی شی گرا یا Object-Oriented Programming که به اختصار به آن OOP می‌گویند، نوعی رویکرد برنامه نویسی است که در آن طراحی کردن یک نرم افزار، عوض توابع و منطق، حول داده‌ها و شی‌ها (یا همان object‌ها) می‌گردد. شی گرایی به توسعه دهندگان این امکان را می‌دهد تا با تعریف آبجکت‌ها یا شی‌های مختلف، سیستم‌های نرم افزاری را مدل سازی کنند. یک آبجکت (Object) می‌تواند از هر نوع داده‌ای تشکیل شده و شامل یک یا چند ویژگی باشد.

برنامه نویسی شی گرا یکی از معروف‌ترین و پر استفاده ترین رویکرد است که در زمینه‌های مختلف از جمله نرم افزار کامپیوتری، نرم افزار موبایل، بازی و سیستم‌های شبیه سازی مورد استفاده قرار می‌گیرد. در برنامه نویسی با رویکرد شی گرایی، ابتدا هدف به صورت مجموعه‌ای از کلاس (Class)ها ساخته می‌شود و در ادامه ی روند توسعه‌ی یک برنامه، آبجکت‌هایی از این کلاس‌ها ساخته شده و تغییر پیدا می‌کنند و مورد استفاده قرار می‌گیرند. هر آبجکت از تعدادی خصوصیت یا Attribute ساخته شده است که می‌توانند مقادیر و انواع مختلفی داشته باشند، مانند یک عدد، یک رشته و یا یک کلاس دیگر.

به عنوان مثال در یک بازی کامپیوتری، اسلحه یک کلاس است و فرضا AK-47 یک آبجکت که از این کلاس بوجود آمده و شامل خصوصیت‌های ویژه‌ی خود است، مثلا تعداد گلوله، تعداد شلیک در ثانیه، رنگ، وزن و خیلی از موارد دیگر. اصطلاحات و اصول مختلفی در برنامه نویسی با رویکرد شی گرایی وجود دارد که در ادامه به طور کامل با ذکر یک نمونه به این موارد می‌پردازیم.

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

به طور کلی برنامه نویسی شی گرا از 4 بخش اصلی زیر تشکیل شده است:

چهار بخش اصلی برنامه نویسی شی گرا

یک مثال تصویری از برنامه نویسی شی گرا

برای اینکه مفهوم موارد ذکر شده را دقیق تر متوجه شوید، تصویر بالا را در نظر بگیرید. ماشین یک کلاس (Class) است و سمند و پراید، یک آبجکت (Object) و در واقع نمونه‌هایی از کلاس ماشین هستند. حداکثر سرعت، اسب بخار، حجم موتور و رنگ، خصوصیات کلاس ماشین هستند و گاز دادن، ترمز کردن، کلاچ گرفتن و بوق زدن نیز متد های این کلاس می‌باشند.

اصول اصلی برنامه نویسی شی گرایی چیست؟

اصول چهارگانه برنامه نویسی شی گرا

برنامه نویسی شی گرایی بر پایه ی اصول زیر هستند:

مثالی جامع از یک برنامه ی OOP

در این قسمت یک مثال جامع از مباحثی که تاکنون یاد گرفته اید می‌آوریم تا کل مفاهیم شی گرایی برای شما واضح تر شود. تصویر زیر را به دقت نگاه کنید:

انتزاع و سلسله مراتب در برنامه نویسی شی گرا

در تصویر بالا، کلاس وسایل نقلیه، یک کلاس انتزاعی یا Abstract است که تعاریف وسایل نقلیه در آن قرار گرفته است. مانند داشتن چرخ، امکان گاز دادن، بوق زدن و... اما هیچ پیاده سازی ای صورت نگرفته است. یعنی داشتن چرخ برای یک وسیله‌ی نقلیه تعریف شده اما چه تعداد چرخ داشته باشد مشخص نشده. کلاس ماشین، یک کلاس انتزاعی مشتق شده از کلاس وسایل نقلیه است که بعضی از موارد تعریف شده در کلاس وسایل نقلیه در آن پیاده سازی شده است.

به عنوان مثال تعداد چرخ ها برابر 4 است. دو کلاس سمند و پراید، کلاس‌های مشتق شده از کلاس ماشین هستند که هرکدام ویژگی‌های خاص خودشان را دارند. این دو کلاس دیگر انتزاعی نمی‌باشند و امکان ساخت شی یا آبجکت از آن ها وجود دارد. مثلا ساخت آبجکت (Object) از نوع سمند مثل سمند سورن، سمن ال اکس، یا ساخت آبجکت پراید مانند پراید 131، 141 و... کلاس (Class) پراید تاکسی یک کلاس است که از کلاس پراید ارث بری (Inheritance) کرده و رنگ این پراید نیز به زرد تغییر پیدا کرده است. کلاس سمند پلیس نیز یک کلاس دیگر است که از کلاس سمند ارث بری کرده است. سمند پلیس، متد بوق زدن را تغییر داده است، یعنی از خاصیت چند ریختی (Polymorphism) استفاده کرده. همچنین متد آژیر زدن را نیز اضافه کرده است.

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

برنامه نویسی با رویکرد شی گرایی مزایای زیادی دارد که در اینجا بعضی از مهم‌ترین آنها را ذکر کرده ایم:

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

تا اینجا از خوبی های برنامه نویسی شی گرا گفتیم. بد نیست کمی در مورد معایب این رویکرد نیز بدانیم.

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

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

اولین زبان برنامه نویسی شی گرا، Simula نام داشت که در سال 1962 عرضه شد. امروزه زبان های شی گرایی بسیاری وجود دارد که در عرصه های مختلف مورد استفاده قرار می‌گیرد. با اینکه هدف این زبان‌ها از شی گرایی یک مساله است اما رویکرد متفاوتی دارند. به عنوان مثال بعضی از زبان‌ها به صورت خالص OOP می‌باشند، در این زبان‌ها همه چیز به عنوان یک شی در نظر گرفته می‌شود. در حالی که بعضی از زبان ها عمدتا برای OOP ساخته شده اند و یا بعضی دیگر از زبان‌ها به صورت غیر شی گرا هم وجود داشتن که OOP را هم وارد زبان خود کرده‌اند.

از نمونه زبان‌هایی که به طور خالص به صورت OOP هستند می‌توان به موارد زیر اشاره کرد:

زبان های زیر به طور کلی برای OOP طراحی شده‌اند (اما مانند زبان‌های OOP خالص یا Pure OOP همه چیز را یک شی در نظر نمی‌گیرند):

نمونه‌های زیر هم زبان‌هایی هستند که OOP را وارد زبان خود کرده‌اند:

تفاوت برنامه نویسی شی گرا و برنامه نویسی ساخت یافته

یکی از سوالاتی که خیلی پرسیده می‌شود، تفاوت دو رویکرد ساخت یافته و شی گرایی است. به طور خلاصه برنامه نویسی ساخت یافته یک رویکرد Top Down یا بالا به پایین دارد، یعنی یک دستورالعمل کلی به طور کامل تعریف می‌شود و سپس در موارد دیگر مورد استفاده قرار می‎گیرد. در حالی که شی گرایی به صورت Bottom Up یا پایین به بالا است و هر آبجکت اطلاعات مورد نیازش را از کلاس بالاتر از خودش به ارث می‌برد. همچنین برنامه های ساخت یافته، به توابع کوچکتر مستقل تقسیم می‌شوند در حالی که برنامه‌های شی گرا به آبجکت‌ها تبدیل می‌شوند.

جمع بندی

رویکرد شی گرایی در برنامه نویسی یکی از معروف ترین و پرکاربرد ترین رویکردها در صنعت ساخت نرم افزار است. در این مقاله به طور کامل شی گرایی (Object-Oriented) را توضیح دادیم و مزایا و معایب این رویکرد را بررسی کردیم. همچنین با ذکر یک مثال سعی کردیم مفاهیم گفته شده را به صورت کاربردی توضیح دهیم.

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

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

کدام زبان ها شی گرا می باشند؟

زبان‌های زیادی وجود دارد که یا به طور خالص OOP هستند و یا می‌توان به وسیله‌ی آنها برنامه‌ی شی گرا نوشت. مانند جاوا، پایتون، سی پلاس پلاس، سی شارپ، روبی و...

چهار اصل پایه ی برنامه نویسی شی گرایی چیست؟

انتزاع (Abstraction)
کپسوله سازی (Encapsulation)
ارث بری (Inheritance)
چند ریختی (Polymorphism)

امتیازدهی5 1 1 1 1 1 1 1 1 1 15.00 امتیاز (5 رای)
اشتراک
بارگذاری نظرات
تلگرام اینستاگرام