سلام عليكم يا أخواني و كل عام وأنتم من أهل الجنة
يا أخواني كان لدي سؤال
ماهو شروط أستعمل .clone أو ماذا يجب أن أفعل لكي أستطيع أستعمل .clone لكلاس معين
مع جزيل الشكر و تقدير
سلام عليكم يا أخواني و كل عام وأنتم من أهل الجنة
يا أخواني كان لدي سؤال
ماهو شروط أستعمل .clone أو ماذا يجب أن أفعل لكي أستطيع أستعمل .clone لكلاس معين
مع جزيل الشكر و تقدير


http://java.sun.com/j2se/1.3/docs/api/java...ct.html#clone()
http://java.sun.com/j2se/1.3/docs/api/java.../Cloneable.html
بالتوفيق
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
مشكور أخ أبو مازن
دائما تخجلنا معاك و تكون مفتاحنا للفرج ألنا
تم تعديل هذه المشاركة بواسطة yadoo86 في 31 أكتوبر 2005 في 14:42


طيب يا أخوان
بس ممكن سؤال؟؟
أنظروا الى هذا برنامج
public class Flea extends Animal implements Cloneable{
private String name;
private String species;
public Flea (String aName,String aSpecies){
super("Flea");
name = aName;
species = aSpecies;
}
public Object clone() throws CloneNotSupportedException{
return super.clone();
}وهذا كود main class لتجربة هذا كلاس
public class TestDerived {
public static void main (String[] args){
try {
PetDog myDog = new PetDog (" a1 "," b1 ");
PetDog yourDog = (PetDog) myDog.clone();
yourDog.setName(" aa ");
Flea fleaName = yourDog.getFlea();
fleaName.setName("hhhhh");
System.out.println("\nYour pet Detials:\n"+yourDog);
System.out.println("\nYour pet Detials:\n"+myDog);
} catch (CloneNotSupportedException e){
e.printStackTrace(System.err);
}
}
}وسؤال هو في كود super.clone() في كلاس الى ماذا تشير super هنا


أعتقد انها تستدعي دالة الـ clone الموجودة في الكلاس الأب وهو Animal
والله أعلم
مشكور أخ osamait على ردك الجميل
و لكن ممكن تفهمني كيف يتم هذة الموضاعفة لل petDog object . لأنة بصراحة ما أفتهم !!!
تم تعديل هذه المشاركة بواسطة yadoo86 في 6 نوفمبر 2005 في 12:39


أنت تنادي أمر ْclone الموجود في الفئة Object، وهذا الأمر يفعل لك عملية النسخ.
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
مشكور أخي أبو مازان
بس سؤال ؟؟؟
ألا تعتقد أنة method .clone يصبح overriding مع method الموجود في كلاس نفسة
مع فائق الشكر و تقدير ....


super تشير إلى الصف الأب، وكما قال لك الأخ أبو مازن فإنك بالتعليمة super.clone() تنادي الطريقة clone في الصف الأب وهو Object هنا إذا كنت لم تعد صياغتها في الصف Animal.
أما عمل Overriding فهو يتم بمجرد كونك تقوم بإعادة تعريف الطريقة clone في هذا الصف (Flea)، المشتق من الصف Object حكماً.
هذا الموضوع مغلق.