يتم إعطاؤك مقتطف رمز يمثل تنفيذًا غير كامل لفئة تسمى "Matrix". من المفترض أن تمثل فئة "المصفوفة" مصفوفة ثنائية الأبعاد من الأعداد الصحيحة، ويجب أن توفر وظيفة إضافة مصفوفتين معًا. ومع ذلك، فإن التنفيذ يفتقد بعض الأجزاء الحاسمة. مهمتك هي إكمال التنفيذ عن طريق ملء الكود المفقود.

أكمل فئة `Matrix` بتنفيذ الطرق التالية:

1. `Matrix(int[][] Matrix)`: مُنشئ يأخذ مصفوفة ثنائية الأبعاد من الأعداد الصحيحة كمعلمة ويقوم بتهيئة متغير مثيل `matrix`.

2. `int[][] add(Matrixother)`: طريقة تأخذ كائن `Matrix` آخر (`other`) كمعلمة وترجع مصفوفة ثنائية الأبعاد جديدة تمثل مجموع المصفوفة الحالية و`other`. يتم الحصول على مجموع مصفوفتين عن طريق إضافة العناصر المقابلة لكل مصفوفة.

تحتاج إلى تنفيذ هذه الأساليب حتى تعمل بشكل صحيح مع أي إدخال صالح. افترض أن صفائف الإدخال سيكون لها دائمًا نفس الأبعاد.

توقيع الفصل: "مصفوفة الفصل".

البناء:
- `مصفوفة(int[][] مصفوفة)`

طُرق:
- `int[][] add(مصفوفة أخرى)`

مثال:
```جافا
int[][] MatrixData = {{1, 2}, {3, 4}};
مصفوفة المصفوفة = مصفوفة جديدة(matrixData);
int[][] OtherData = {{5, 6}, {7, 8}};
Matrixother = new Matrix(otherData);
int[][] result = Matrix.add(other);
```

يمثل المتغير `matrixData` المصفوفة الأولى، التي تتم تهيئتها باستخدام المُنشئ المقدم. يمثل المتغير "otherData" المصفوفة الثانية. يجب أن يحتوي المتغير `النتيجة` على مجموع المصفوفتين، أي `{{6, 8}, {10, 12}}`.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}