Hu Puster نشر 6 يناير أرسل تقرير نشر 6 يناير (معدل) اقتباس هل يمكن وضع كائن داخل كائن؟ مثلا اكثر من كائن داخل كائن واحد تم التعديل في 7 يناير بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 7 يناير أرسل تقرير نشر 7 يناير بالطبع يمكن ذلك، والطريقة تختلف من لغة لأخرى، وأحد الأساليب الشائعة هي استخدام التضمين (composition) أو الوراثة (inheritance) في جافا مثلا: class MainObject { // خصائص الكائن الرئيسي } class SubObject { // خصائص الكائن الفرعي } class ContainerObject { MainObject mainObject; SubObject subObject; public ContainerObject(MainObject mainObject, SubObject subObject) { this.mainObject = mainObject; this.subObject = subObject; } } فهنا يحتوي ContainerObject على كائن من النوع MainObject وآخر من النوع SubObject، وتستطيع توسيع ذلك المفهوم وتعقيد العلاقات كما تريد. وفي جافاسكريبت كالتالي: // تعريف كائن أول let object1 = { property1: "Value 1", method1: function() { console.log("Method 1"); } }; // تعريف كائن آخر let object2 = { property2: "Value 2", method2: function() { console.log("Method 2"); }, embeddedObject: object1 // وضع كائن داخل كائن آخر }; // الوصول إلى الخصائص والأساليب في الكائن الفرعي console.log(object2.property2); // سيطبع: Value 2 object2.method1(); // سيطبع: Method 1 وأيضًا من الممكن الإعتماد على الوراثة بواسطة الـprototype في جافاسكريبت لتحقيق تنظيم هرمي للكائنات، وذلك يشمل وضع كائن داخل كائن آخر، أو استخدام مفاهيم مثل الـclass في ECMAScript 6 لتحقيق هيكلة أكثر تنظيمًا للكائنات. 1 اقتباس
0 Khaled Osama3 نشر 7 يناير أرسل تقرير نشر 7 يناير بتاريخ 9 ساعة قال Hu Puster: اقتباس هل يمكن وضع كائن داخل كائن؟ مثلا اكثر من كائن داخل كائن واحد توجد اكثر من علاقه يمكن ان توجد بين الكلاسات. الوراثة (Inheritance): يمكن لكلاس أن يورث خصائص وسلوكيات من كلاس آخر (الكلاس الأساس). class Animal { public void eat() { System.out.println("Eating..."); } } class Dog extends Animal { public void bark() { System.out.println("Bark!"); } } Dog dog = new Dog(); dog.eat(); // inherited from Animal dog.bark(); التركيب (Composition): عندما يحتوي كلاس على عضو من آخر. مثل كلاس سيارة يحتوي على كلاس محرك. class Engine { public void start() {...} } class Car { private Engine engine; public void drive() { engine.start(); // use engine } } الاتحاد (Aggregation): نفس معنى التركيب ولكن العلاقة أضعف. مثل سيارة ومالكها. class Car {...} class Person { private Car car; public void buyCar(Car c) { car = c; } } الارتباط (Association): عندما تتعامل كائنات مع بعضها البعض دون تعديل بنيتها الداخلية. مثل طالب ومعلم. class Student { private Teacher teacher; public void learn() { teacher.teach(); } } class Teacher { public void teach() {...} } 1 اقتباس
السؤال
Hu Puster
تعديل عنوان السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.