البرمجة

وراثة الفئات في Ruby

في الواقع، السبب في عودة “الرقم” كمصفوفة يعود إلى كيفية تعريف الدالة initialize في الفئة Employee. عندما تكتب @number = n, @id = i, @phone = ph, @adress = ad، يتم فهم ذلك بأنك تقوم بتعيين قيمة n إلى @number وبالتالي يتم تعيين @number لتكون مصفوفة تحتوي على n، وكذلك لباقي المتغيرات.

لحل هذه المشكلة، يمكنك تعديل دالة initialize لتكون كالتالي:

ruby
class Employee def initialize(n,i,ph,ad) @number = n @id = i @phone = ph @adress = ad end def getInfo return @number,@id,@phone,@adress end end

بهذا التعديل، يتم تعيين كل قيمة إلى المتغير المناسب بدون تحويلها إلى مصفوفات، وبالتالي ستحصل على الإخراج المتوقع.

المزيد من المعلومات

بالطبع! في Ruby، الوراثة تعتبر وسيلة قوية لإعادة استخدام الشفرة وتنظيم الشفرة. عندما تنشئ فئة جديدة ترث من فئة أخرى، تأخذ الفئة الجديدة جميع المتغيرات العضوية والدوال من الفئة الأساسية.

في مثالك، الفئة Getemploy تورث من Employee، وبالتالي ترث جميع المتغيرات @number و @id و @phone و @adress والدالة getInfo. ولكن، يجب أن يتم استخدام الدالة initialize في الفئة الموروثة (Employee) لتعيين القيم للمتغيرات الداخلية بشكل صحيح.

يُفترض أن تعود الدالة get_data بقيمة العناصر المخزنة في المتغيرات @number و @id و @phone و @adress. ولكن بسبب التعديل الخاطئ في الدالة initialize، كانت القيمة تُعاد كمصفوفة بدلاً من قيم فردية.

بعد التعديل الذي قمت به في دالة initialize، يجب أن تعمل الشفرة بشكل صحيح الآن، وستعود القيم بشكل صحيح دون تحويلها إلى مصفوفات.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!