object oriented programming

تخصصی

[کامپیوتر] برنامه نویسی مقصود گرا. - برنامه نویسی شیء گرا- نوعی روش برنامه نویسی که در آن برنامه نویس نه فقط انواع داده ها ،بلکه رویه هایی را که به طور خودکار به آنها مربوط اند نیز تعریف می کند. بسیاری از زبانهای برنامه نویسی ،به برنامه نویس امکان تعریف انواع داده های جدید مانند رکوردها ،آرایه ها و فهرستهای پیوندی را می دهند . (نگاه کنید به data structures ) .در برنامه نویسی شی گرا ،برنامه نویس می تواند مجموعه ای از رویه ها (روشها) را با هر نوع داده ای مرتبط کند . انواع داده ها با رویه های مربوط به خود ،Classes نام دارند . رویه های گوناگونی که برای انواع مختلف داده ها،کارهای گوناگونی انجام می دهند ،polymorphism نام دارند . مثلاً ممکن است یک روش « ترسیم» برای دایره ها و روش دیگری برای مستطیل ها وجود داشته باشد . برخی از کاربردهاهای برنامه نویسی شیء گرا شامل موارد زیر است : (1) اشیا گرافیکی : برنامه ای که خطوط ،دایره ها ،مستطیل ها و مانند آن را دستکاری می کند و می تواند یک رویه ی «رسم» و « حرکت» برای هر یک از انواع داده ها داشته باشد . (2) اشیای ریاضیاتی: به جای کار با بردارها ،ماتریس ها،یا اشیای دیگر ریاضیاتی ،برنامه نویس نه فقط مجبور است ساختارهای داده را برای این اشیا تعریف کند، بلکه باید عملیاتی مانند جمع ،وارونه کردن، یا یافتن یک دترمینال را نیز تعریف کند. (3) دستگاههای ورودی و خروجی : ترسیم یک خط بر روی چاپگر یا پلاتر، ممکن است با ترسیم آن بر روی صفحه نمایش تفاوت داشته باشد .برنامه نویس شیء گرا روش ساده ای را تهیه می کند تا از درستی کاربرد رویه در هر دستگاه اطمینان دهد . (4) شبیه سازی : در برنامه ای که جریان ترافیک را شبیه سازی می کند،انواع گوناگونی از اشیاهایی وجود دارد که هریک برای پاسخ دادن به نورهای قرمز، موانع جاده، و ... رویه ی خاص خود را دارند ،برنامه نویس شیء گرا نیز به همین دلیل به کار می رود . نخستین زبان برنامه نویسی شیء گرا، Simula نام داشت که در سال 1967 معرفی شد . (5) مؤلفه های نرم افزاری که مجدداً مورد استفاده قرار می گیرد : این زبان روش قدرتمندی را تأمین می کند تا مؤلفه هایی ساخته شود که برنامه ها از آنها به وجود آمده و به کار روند . مثلاً یک برنامه نویس ممکن است از یک شیء از پیش تعریف شده، مانند « فهرست مرتب شده » ( فهرستی که به طور خودکار، خود را مرتب نگه میدارد) استفاده کند و نیازی به نوشتن رویه ای برای انجام کار نداشته باشد . در اینجا یک نمونه ی برنامه نویسی شیء گرا به زبان توربو پاسکال ارائه می شود. برنامه ای را تصور کنید که نقاط، خطوط و دایره ها را دستکاری می کند. یک نقطه شامل یک مکان و همچنین رویه ای برای نمایش آن است. از این رو برنامه نویس، یک نوع داده را به نام pointtype و به شرح زیر تعریف میکند: TYPE pointtype = OBJECT X,y: INTEGER; PROCEDURE draw END ; این موضوع مانند تعریف یک رکورد است، با این تفاوت که به یک رویه draw رجوع میکند: PROCEDURE pointtype . draw ; BEGIN PutPixel (x,y, white ) END ; حالا متغیرهای نوع pointtype می توانند تعریف شوند ؛ مانند ؛ VAR a , b: pointtype ; در اینجا اشیای a و b مانند رکوردهایی هستند که یک فیلد x ,y نیز دارند ؛ x , y به نام instance variables ( متغیرهای لحظه ای ) معروف هستند . همچنین a وb به رویه ی point.draw نیز مربوط می شوند. چگونگی استفاده از آنها چنین است : a.x : =100 ; a.y: =150 ; a.draw ; این جمله ها در فیلدهای xو y از a مقادیر 100 و 150 را قرار می دهد و سپس رویه ی draw را که با a در ارتباط است، می خواند ( رویه ی pointtype .draw ) . اکنون می خواهیم رسم دایره را انجام دهیم . یک دایره مانند یک نقطه است، با این تفاوت که علاوه بر x و y یک شعاع نیز دارد. روش ترسیم دایره نیز متفاوت است . می توانیم یک نوع داده به نام circletype تعریف کنیم که ویژگی های pointtype را ارث می برد ( یعنی شامل هر چیزی می شود که pointtype دارای آن است) با این تفاوت که یک متغیر لحظه ای به نام radius را اضافه کرده و روش ترسیم دیگری به کار می برد . توجه داشته باشید که متغیرهای لحظه ای به اشیای مستقل و جداگانه ای مانند a,c و b متعلق اند، اما روشها ( رویه ها ) به انواع اشیا تعلق دارند. امتیاز برنامه نویسی شیءگرا این است که رویه های درست را با هر شیئی مرتبط می کند: c.draw از رویه ی ترسیم دایره استفاده می کند، زیرا شیء c یک دایره است. اما a.draw رویه ی ترسیم نقطه را به کار می برد، زیا شیء a یک نقطه است. محل فراخوان یکی از روشهای شیء گاهی به عنوان « ارسال یک پیام » به شیء شرح داده می شود ( مثلاً ،c.draw یک پیام به c ارسال کرده و اعلام می کند که : « خودت را رسم کن!» ) . تمام سیستمهای برنامه نویسی شیء گرا فقط یک رده ( کلاس ) از انواع داده ها را امکان می دهند تا از دیگری ارث ببرد ( مانند circletype و pointtype در نمونه های فوق ) . برخی از این سیستمها نیز ارث بری چندگانه یا multiple inheritznce را ممکن می سازند. در ارث بری چندگانه، یک رده ( کلاس ) از انواع داده ها می تواند به صور ترکیبی از دو یا چندین کلاس موجود تعریف شود. نگاه کنید به ++smalltalk ; c .

انگلیسی به انگلیسی

• computer programming in which small parts are defined as objects and divisions that have different relationships between them (computers)

پیشنهاد کاربران

بپرس