شیوۀ برنامهنویسی به روش شیءگرا
برنامه نویسی شیءگرا
فرهنگ فارسی
دانشنامه عمومی
برنامه نویسی شی گرا (به انگلیسی Object-Oriented Programming مخفف:OOP) یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شی ها می باشند. در واقع در این شیوه برنامه نویسی، برنامه به شی گرایش پیدا می کند. به این معنا که داده ها و توابعی که قرار است بر روی این داده ها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمع بندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله می شوند و از این طریق، توابع بیگانهٔ خارج از آن شی، دیگر امکان ایجاد تغییر در داده های درون آن شی را ندارند.
اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' می خواهد، چیزی دریافت نمی کند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها می تواتند ماشین باربری یا ماشین سواری بخواهد.
کارواش را در نظر می گیریم. این کارواش خودرو را تمیز می کند و دیگر به طور جزئی عنوان نمی کند که کدام نوع خودرو را تمیز می کند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
وقتی شخصی قصد اجاره خودرویی دارد، و می خواهد جنسی را حمل کند در هنگام تماس با متصدی کرایه ماشین می گوید: «اگر خودرو شمااز نوع باربری است، برای من ارسال کنید»، ولی اگر قصد جابجا شدن را دارد می گوید: «برای من یک ماشین سواری بفرستید.»
به عنوان مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را می دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگی های برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایم های برنامه نویسی است.
فلسفه ای که منجر به شکل گیری ی زبان های شی گرا شد، عبارت بود از این واقعیت که نحوه عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوه ای شی گراست، از همین روی می بایستی زبانی تعریف می شد که همین شیوه را مبنای کار خود قرار داده و بازتولید می کرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در زبان های برنامه نویسی نیز می بایستی این اصول کلی برقرار می شد. تا به این شکل، برنامه نویس بتواند با بهره گیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شی های مختلفی را تعریف نموده، این شی ها را در ارتباط با یکدیگر قرار داده و از شی های پویای تولید شده برای حل مسئله ی پیش روی استفاده نماید. امروزه اکثر زبان های دستوری برنامه نویسی از فنون شی گرایی پشتیبانی می کنند. زبان هایی مانند جاوا، سی پلاس پلاس(++)، سی شارپ، دلفی از جمله زبان های شی گرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامه ها در آن ها بلوک هایی با نام پروسیجر است امروزه از فنون شی گرایی نیز پشتبانی می کنند. زبان های سی++ و پی اچ پی از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده می شوند. در این پارادایم برنامه نویسی، دید برنامه نویس به سیستم دید شخصی است که سعی می نماید با پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آن ها سیستم را تولید نماید. (مفهوم مدیریت دیداری)
لازم به ذکر است که تکنیک برنامه نویسی شی گرا به مراتب کارا و پیچیده تر از سبک برنامه نویسی مبتنی بر تابع (procedural) است.
اگر کسی به درب کارخانه مراجعه کند و بگوید که 'خودرو' می خواهد، چیزی دریافت نمی کند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شیء وجود ندارد پس مشتری تنها می تواتند ماشین باربری یا ماشین سواری بخواهد.
کارواش را در نظر می گیریم. این کارواش خودرو را تمیز می کند و دیگر به طور جزئی عنوان نمی کند که کدام نوع خودرو را تمیز می کند. به عبارت دیگر نوع خودرو برای کارواش مهم نیست.
وقتی شخصی قصد اجاره خودرویی دارد، و می خواهد جنسی را حمل کند در هنگام تماس با متصدی کرایه ماشین می گوید: «اگر خودرو شمااز نوع باربری است، برای من ارسال کنید»، ولی اگر قصد جابجا شدن را دارد می گوید: «برای من یک ماشین سواری بفرستید.»
به عنوان مثال حساب بانکی شما که شامل مشخصات فردی شما و میزان سپردهٔ شما در بانک است، تشکیل یک شی را می دهند و به دلیل دارا بودن ویژگی کپسوله، امکان دستکاری در میزان سپرده یا مشخصات شما، توسط دیگران وجود ندارد. از دیگر ویژگی های برنامه نویسی شی گرا، پیچیدگی کم، هزینه کم، امکان گسترش سریع برنامه با خطای کمتر نسبت به سایر پارادایم های برنامه نویسی است.
فلسفه ای که منجر به شکل گیری ی زبان های شی گرا شد، عبارت بود از این واقعیت که نحوه عملکرد مغز و شیوهٔ دریافت اطلاعات از محیط پیرامون و پردازش آن اطلاعات (اندیشیدن)، شیوه ای شی گراست، از همین روی می بایستی زبانی تعریف می شد که همین شیوه را مبنای کار خود قرار داده و بازتولید می کرد؛ و دقیقاً به همان شکل که اشیا در جهان خارج، دارای هویت و کارکرد مشخص و یگانه برای خود هستند و در عین حال با دیگر اشیا در ارتباطی تنگاتنگ و مستقیم اند، در زبان های برنامه نویسی نیز می بایستی این اصول کلی برقرار می شد. تا به این شکل، برنامه نویس بتواند با بهره گیری از زبانی که به روش اندیشیدنش، نزدیکی بیشتری دارد، شی های مختلفی را تعریف نموده، این شی ها را در ارتباط با یکدیگر قرار داده و از شی های پویای تولید شده برای حل مسئله ی پیش روی استفاده نماید. امروزه اکثر زبان های دستوری برنامه نویسی از فنون شی گرایی پشتیبانی می کنند. زبان هایی مانند جاوا، سی پلاس پلاس(++)، سی شارپ، دلفی از جمله زبان های شی گرا هستند. حتی بسیاری از زبانهای روال گونه که ساختار برنامه ها در آن ها بلوک هایی با نام پروسیجر است امروزه از فنون شی گرایی نیز پشتبانی می کنند. زبان های سی++ و پی اچ پی از این جمله هستند. هر شیء یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Operation خوانده می شوند. در این پارادایم برنامه نویسی، دید برنامه نویس به سیستم دید شخصی است که سعی می نماید با پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آن ها سیستم را تولید نماید. (مفهوم مدیریت دیداری)
لازم به ذکر است که تکنیک برنامه نویسی شی گرا به مراتب کارا و پیچیده تر از سبک برنامه نویسی مبتنی بر تابع (procedural) است.
wiki: برنامه نویسی شیءگرا
دانشنامه آزاد فارسی
برنامه نویسی شیء گرا (object-oriented programming)
نوعی برنامه نویسی سطح بالا که در آن از شیء برای نوشتن و سازماندهی برنامه استفاده می شود. شیء یک مجموعه دستورالعمل مستقل است که داده ها و عملکردهایش را درون خود دارد و با سایر اشیا در ارتباط است. از اشیا برای تعریف انواع داده ای، ساختمان داده ها، و روال هایی که عملیات مختلف را روی داده ها انجام می دهند استفاده می شود. برنامه نویسان با استفاده از اشیا به عنوان بلوک های از قبل آماده شده که مستقلاً کار مخصوص به خود را انجام می دهند، می توانند راحت تر به هدف کلی برنامه برسند و کل برنامه را با یک دید بالا به پایین بنویسند. یکی از قویترین ویژگی های OOP، ویژگی ارث بری است که با استفاده از آن می توان یک شیء جدید را بر اساس ویژگی ها و عملکردهای یک شیء موجود ساخت. با استفاده از OOP می توان از یک برنامه یا بخشی از آن برای ساختن برنامه های ترکیبی دیگر بدون محدودیت استفاده کرد. این قابلیت ها باعث می شود که برنامه های OOP کوچکتر از سایر روش های برنامه نویسی باشند، زحمت کدنویسی آنها کمتر باشد، و خطاها یا باگ های کمتری هم در برنامه وجود داشته باشد. زبان سیمولا که در ۱۹۶۲ تا ۱۹۶۷ در مرکز محاسبات رایانه ای نروژ طراحی شد، نخستین زبانی بود که برنامه نویسی شئ گرا را معرفی کرد. این زبان برنامه نویسی از ویژگی های اساسی شئ گرایی، ازجمله اشیا و ارث بری، بهره می برد. زبان C++ که در اوایل دهه ۱۹۸۰ در آزمایشگاه های بل ابداع شد، محبوب ترین زبان برنامه نویسی شئ گراست.
نوعی برنامه نویسی سطح بالا که در آن از شیء برای نوشتن و سازماندهی برنامه استفاده می شود. شیء یک مجموعه دستورالعمل مستقل است که داده ها و عملکردهایش را درون خود دارد و با سایر اشیا در ارتباط است. از اشیا برای تعریف انواع داده ای، ساختمان داده ها، و روال هایی که عملیات مختلف را روی داده ها انجام می دهند استفاده می شود. برنامه نویسان با استفاده از اشیا به عنوان بلوک های از قبل آماده شده که مستقلاً کار مخصوص به خود را انجام می دهند، می توانند راحت تر به هدف کلی برنامه برسند و کل برنامه را با یک دید بالا به پایین بنویسند. یکی از قویترین ویژگی های OOP، ویژگی ارث بری است که با استفاده از آن می توان یک شیء جدید را بر اساس ویژگی ها و عملکردهای یک شیء موجود ساخت. با استفاده از OOP می توان از یک برنامه یا بخشی از آن برای ساختن برنامه های ترکیبی دیگر بدون محدودیت استفاده کرد. این قابلیت ها باعث می شود که برنامه های OOP کوچکتر از سایر روش های برنامه نویسی باشند، زحمت کدنویسی آنها کمتر باشد، و خطاها یا باگ های کمتری هم در برنامه وجود داشته باشد. زبان سیمولا که در ۱۹۶۲ تا ۱۹۶۷ در مرکز محاسبات رایانه ای نروژ طراحی شد، نخستین زبانی بود که برنامه نویسی شئ گرا را معرفی کرد. این زبان برنامه نویسی از ویژگی های اساسی شئ گرایی، ازجمله اشیا و ارث بری، بهره می برد. زبان C++ که در اوایل دهه ۱۹۸۰ در آزمایشگاه های بل ابداع شد، محبوب ترین زبان برنامه نویسی شئ گراست.
wikijoo: برنامه_نویسی_شیء_گرا
فرهنگستان زبان و ادب
{OO programming} [رایانه و فنّاوری اطلاعات] شیوۀ برنامه نویسی به روش شیءگرا
کلمات دیگر: