لغة جافا تعتبر برمجة بالكائنات وتستخدم في تطبيقات الأجهزة الذكية والألعاب.
تتفاعل الكائنات عبر إرسال الرسائل بين بعضها. لا يستخدم أسلوب البرمجة التنازلية في التصميم واسع النطاق لبرنامج كهذا وقد يعاني الأشخاص المعتادون على البرامج التقليدية من صعوبة في الاعتياد على البرمجة كائنية التوجه. على أية حال، يدّعي الأشخاص الذين يستخدمون البرمجة كائنية التوجه أنها تميل لكونها نموذجًا أفضل للآلية التي يعمل بها العالم الحقيقي بأكمله، وأنها نتيجة لذلك، أسهل في الكتابة والفهم وأوفر حظًّا في أن تكون صحيحة. ربما تظن أن الكائنات تعرف كيف تستجيب لرسائل بعينها. قد تستجيب الكائنات المختلفة إلى نفس الرسالة بطرائق مختلفة. على سبيل المثال، فقد ينتج عن الرسالة "طباعة" نتائج مختلفة كليًا وفق الكائن الذي تُرسَل إليه. تدعى هذه الخاصية التي تسمح للكائنات المختلفة بالاستجابة لنفس الرسالة بطرائق مختلفة بالتعدديّة الشكلية (polymorphism). مقارنة بين لغات البرمجة | البرمجة .. من الشائع أن تشترك الكائنات بسماتٍ أو "تشابه عائلي". تنتمي الكائنات التي تحتوي النوع نفسه من البيانات وتستجيب للرسائل نفسها بالطريقة نفسها إلى صنف (class) واحد. (في البرمجة الفعلية، يكون الصنف نوعًا أوليًّا، أي أنَّنا ننشئ صنفًا ومن ثم يُنشَأ كائن أو أكثر بالاعتماد على ذاك الصنف بعدِّه قالبًا).
لا تُقدم البرمجة التنازلية الاهتمام المُلائم للبيانات التي يتلاعب بها البرنامج. المشكلة الثانية باستخدام البرمجة التنازلية الصارمة هي أنَّها تجعل من الصعب إعادة استخدام العمل المنجز في مشاريع أخرى. عند البدء بمسألة ما وتقسيمها إلى أجزاء مناسبة، تميل البرمجة التنازلية إلى أن تفضي لحل حصري بالمسألة. من غير المحتمل أن تستطيع أخذ كتلة ضخمة من البرمجة من برنامج آخر واستخدامها في مشروعك، ستحتاج على الأقل إلى تعديلات كثيفة. لغة البرمجة بالكائنات | طلاب اول ثانوي ج لمدرسة الامام الطحاوي ببريدة. إن الحصول على برامج عالية الجودة أمر صعبٌ ومُكلف لذا يحرص المبرمجون ومن يوظِّفهم على إعادة استخدام أعمالهم السابقة. لذا، يُدمج التصميم التنازلي غالبًا في الممارسة العملية مع التصميم التصاعدي (bottom-up design) أي من الأسفل إلى الأعلى. في التصميم التصاعدي، تبدأ من الأسفل بمسائل تعرف مسبقًا كيفية حلها (وقد يكون لديك في متناول يدك مُكوّن برمجي قابل لإعادة الاستخدام فيها). من هناك، تستطيع العمل تصاعدياً نحو حلّ للمسألة الكلية. ينبغي أن تكون المكونات القابلة لإعادة الاستخدام "مقولبة" قدر الإمكان. الوحدة (module) هي إحدى مكونات نظام ضخم تتفاعل مع بقية النظام بأسلوب بسيط، واضح المعالم ومباشر.
مطلوب الإجابة خيار واحد صح ام خطا ، نسأل الله تعالى أن يكون قد ألهمنا لذكر معلومات مفيدة وجلية بخصوص الموضوع الذي تحدثنا فيه.
"); // Set a new value echo $object->getProperty(); // Read it out again to show the change قم بزيارة الملف من المتصفح لمشاهدة النتاج وهو كالتالي: قوة OOP تظهر عند إستخدام كلاس class واحد لإنشاء أكثر من كائن Object سنقوم بتعديل بسيط على ملف test. php ونقوم بإنشاء كائنين ونقوم بطباعة خصائصهم ومن ثم تعديلها وبالأخير طباعتهم مرة أخرى لمشاهدة الفرق قم بتغير محتوى الملف ليصبح كالتالي: // Create 2 Objects From The Same Class $object2 = new SimpleClass; // Print The Value of $property Of Both Objects echo $object->getProperty(); echo $object2->getProperty(); // Set New Values For Both Objects $object->setProperty("I belong to the First instance! "); $object2->setProperty("I belong to the Second instance!
"; ليصبح الكود كالتالي: public $property = "I'm a class property!
يجب إجراء تصميم للبرامج، فلا يمكن لأحدٍ أن يجلس ببساطةٍ أمام الحاسوب ويُؤلف برنامجًا معقدًا. يُهتَّم فرع هندسة البرمجيات (software engineering) ببناء برامج صحيحة، فعَّالة ومكتوبة على نحوٍ سليم. يحاول مهندس البرمجيات استخدام أساليب مقبولة ومُثبتة لتحليل المسألة لكي يتم حلها ومن ثم تصميم برنامج لحل تلك المسألة. خلال سبعينيات وبداية ثمانينيات القرن الماضي، كانت المنهجية الأساسية في هندسة البرمجيات هي " البرمجة البنيوية " (structured programming). يعتمد أسلوب البرمجة البنيوية لتصميم البرامج على النصيحة الآتية: لحل مسألة ضخمة، جزِّئها إلى عدة أجزاء ثم اعمل على كلّ جزءٍ على حدة. لحل كل جزء، عالجه كما لو مسألةً جديدة يمكن أن تُجزّأ بدورها إلى مسائل أصغر. ستصل في نهاية المطاف إلى مسائل يُمكن حلّها مباشرةً بدون تفكيكها. يُدعى هذا الأسلوب بالبرمجة التنازلية (top-down programming) أي منهج من الأعلى إلى الأسفل. ليس هناك من خطبٍ بالبرمجة التنازلية فهو أسلوب مفيدٌ وغالبًا ما يُعتمَد في حل المسائل بيد أنّه ناقص. أولًا، يتعامل كليًا تقريبًا مع إنتاج التعليمات اللازمة لحل المسألة. لكن مع مرور الوقت، أدرك الناس أن تصميم بنى البيانات للبرنامج لا يقلّ أهمية عن تصميم البرامج الفرعية وبنى التحكم.