جهت تماس با کارشناسان فروش کلیک نمایید

موضوع مقاله : برنامه نويسي شي گرا چيست؟ :

شرح : از آنجا که اساس تکوين C++ برنامه نويسي شي گرا است. پس مهم است که تعريف دقيقي را از برنامه نويسي شي گرا ارائه دهيم . شي گرا از بهترين مفاهيم برنامه سازي ساخت يافته بوجود آمده است و با چندين مفهوم قوي ترکيب شده که امکان سازماندهي برنامه ها را به طور کارآمد را فراهم مي کند. به طور کلي هنگامي که در حالتي شي گرا نيز برنامه مي نويسيد مساله را به بخش هاي تشکيل دهنده آن تجزيه مي کنيد. هر مولفه اي يک شي خود ظرف مي شود که شامل دستورالعملهاي خودش و داده هاي مرتبط با آن شي است . از طريق اين عمليات پيچيدگي کاهش يافته و مي توان برنامه هاي بزرگ را مديريت کرد . همه زبان هاي برنامه نويسي شي گرا در سه چيز مشترک هستند : کپسوله سازي ، چند ريختي و وراثت. که در زير اشاره مختصري به هريک از آنها مي کنيم. کپسوله سازي همانطور که مي دانيد تمام برنامه ها از دو عنصر اصلي تشکيل مي شوند : عبارت برنامه (کد) و داده ها . کد بخشي از برنامه است کد عمليات را اجرا مي کند و داده ها اطلاعاتي است که توسط اين عمليات تحت تاثير قرار گرفته . کپسوله سازي يک مکانيزم برنامه نويسي است که کد و داده ها را با هم در يک جا قرار داده و هر دو را از استفاده نادرست و تداخل خارجي ايمن نگه مي دارد . در يک زبان شي گرا ، کد و داده ممکن است با هم در چنين روش محدود شوند که يک جعبه سياه خود ظرف را ايجاد مي کند . درون جعبه تمام داده هاي مورد نياز و کد است . هنگامي که در اين روش کد و داده ها با هم پيوند برقرار مي کنند يک شي به وجود مي آيد . به عبارت ديگر يک شي ابزاري است که ازکپسوله سازي پشتيباني مي کند. درون يک شي (کد وداده ها) يا هردو ممکن است براي آن شي محلي (خصوصي/Private) يا عمومي (Public) باشند.کد يا داده هاي محلي فقط توسط بخش ديگري از شي شناخته شده و قابل دست يابي هستند. به همين دليل کد يا داده محلي براي قطعه اي از برنامه که خارج از شي است قابل دسترس نمي باشد . هنگامي که کد يا داده ها عمومي هستند بخش ها ديگري از برنامه ممکن است به آنها دسترسي داشته باشند حتي اگر درون شي تعريف شده باشند بخش هاي عمومي يک شي براي ارائه يک ارتباط کنترل شده با عناصر محلي شي مورد استفاده قرار مي گيرند. چند ريختي چند ريختي کميتي است که به يک رابط امکان مي دهد تا براي يک کلاس عمومي از عمليات مورد استفاده قرار مي گيرد . عمل خاص توسط ذات حقيقي شي تعيين مي شود.به عنوان مثال يک پشته را در نظر بگيريد . ممکن است برنامه اي داشته باشيد که نياز به سه نوع مختلف پشته داشته باشيد يک پشته براي مقادير صحيح ،يک پشته براي اعداد اعشاري و يک پشته براي کاراکترها مورد استفاده قرار مي گيرد.در اين صورت الگوريتمي که هر سه پشته را پياده مي کند يکسان است حتي اگر داده هايي که در آنها ذخيره مي شود متفاوت باشند . در يک زبان غير شي گرا نياز خواهيد داشت تا سه نوع مختلف از روال هاي پشته را ايجاد کرده . به هر کدام نام متفاوتي قرار داده و براي هر کدام از روابط خاص خودش استفاده کنيد . به دليل وجود چند ريختي در C++ مي توانيد يک مجموعه روال عمومي از پشته ايجاد کرده وآن را براي هر سه نوع به کار ببريد. به طور کلي مفهوم چندريختي اغلب توسط عبارت "يک رابط چندين روشي" بيان مي شود . اين بدين معني است که امکان طراحي يک رابط عمومي براي گروهي از عمليات مرتبط وجود دارد. چند ريختي با اعمال رابط يکساني که براي تعيين يک کلاس عمومي مورد استفاده قرار مي گيرد . به کاهش پيچيدگي کمک مي کند . اين است وظيفه کامپايلر تا فعاليت خاصي (مثل متد) را براي اعمال روي آن انتخاب کند . شما به عنوان برنامه نويس نياز نداريد تا اين انتخاب را انجام دهيد شما فقط نياز داريد روابط عمومي را به خاطر سپرده و استفاده کنيد. زبان هاي برنامه نويسي شي گراي اوليه چون به صورت مفسري بودند از چند ريختي در زمان اجرا پشتيباني مي کردند. ولي چون C++ کامپايلري است پس هم در زمان اجرا و هم در زمان کامپايل از چند ريختي پشتيباني مي کند. وراثت وراثت عملي است که يک شي مي تواند مشخصه هاي شي ديگري را به دست آورد. به همين دليل از مفهوم دسته بندي سلسه مراتبي پشتيباني مي کند. بدون استفاده از وراثت هر شي به طور مجزا بايستي تمام مشخصه هاي خودش را تعريف کند . با استفاده از وراثت شي فقط نياز به تعريف مشخصه هايي دارد که در داخل آن کلاس منحصر به فرد هستند . اين سبب مي شود که صفات عمومي را از پدرشان به ارث ببرند. بنابراين مکانيزم وراثت به يک شي امکان مي دهد تا نمونه خاص از يک حالت عمومي تر باشد.