حد يفهمها لي
السلام عليكم و رحمة الله و بركاته
صراحة دة موضوع شغلني من فترة في مسألة البرمجة الشيئية ( عارف ان كل الناس ما بتحبهاش بالعربي بس لو عملتها بالانجليزي الكلام هايبدأ من الاخر ) ،، المهم شوفوا الكود دة
class Parent {
public void m1(){}
public void m2(){}
public void m3(){}
public void m4(){}
public void m5(){}
}
class Child1 extends Parent{
public void m6(){}
public void m7(){}
public void m8(){}
public void m9(){}
public void m10(){}
}
class Child2 extends Child1{
public void m11(){}
public void m12(){}
public void m13(){}
public void m14(){}
public void m15(){}
}
.......
class Child5 extends Child4{
public void m21(){}
public void m22(){}
public void m23(){}
public void m24(){}
public void m25(){}
}
public class Test{
public static void main(String[] args){
Child5 test = new Child5();
}
}
دلوقتي بقا الكلاس الوحيد اللي علمت منه انستنس هو الخامس اللي هو المفروض يكون فيه 25 ميثود ،، برغم اني اكيد مش هاستخدم الـ25 دول ،، طب لية انا ورثت كل دول و حطيتهم في الميموري على الفاضي ؟
الأسئلة دلوقتي اللي هاتحسم الموضوع هي كالتالي :-
- هل الميثودس دي اصلا بتشغل مكان في الميموري ؟
- هل في فعلا امثلة على كلاسات بتضطر تصممها بالشكل دة لاغراض تنظيمية ؟
عموما انا عملت حاجة بالبي اتش بي في دماغي انها ممكن تكون حل و لو بدائي للمشكلة دي لو كانت مشكلة اصلا و تصوري كان صح !
على فكرة انا سألت ناس في الموضوع دة بس للأسف ما كانش متاح قدامي الوقتي الكافي عشان اتكلم و كان كلام مش مكتوب و واضح ،، منتظر تعليقات و حلول باذن الله و بارك الله فيكم
Categories: مراجعات
الإجاية على السؤال رقم 1 هو أيوة
السؤال التاني اجابته انه فيه فعلا كلاسات بتكون محتاجةالخواص دي. زي مثلا “الكائنات” الخاصة بالواجهة الرسومية زي الأزرار و علامات الاختيار …. الخ. حيث انه فيه عمليات كتير مشتركة بينها زي رسمها و وضعها على الشاشة أو تحريكها مثلا. كل دة ممكن يوضع في بيز كلاس واحدة تورثها بقية الكلاسات التانية
كويس قوي اجابة السؤال الأول ،، بس اللي اقصده بالسؤال التاني انك تضطر تورث حاجات مش هاتستخدمها اصلا بس ورثتها لانها تبع التصميم لازم تكون بابليك او بروتكتد ،، بالتالي انا ورثت حاجات و اخدت مساحة من الميموري و ما استخدمتش الحاجات دي
اللي عاوز اقوله اني عاوز اورث اللي انا محتاجه بس
1- هي فعلاً الميثوردز بتشغل مساحة زيادة في الميموري، لكن مش بالصورة اللي انت مصورها… يعني الميموري هيبقى فيها صحيح 25 ميثود، لكن نسخة واحدة بس… بمعنى لو عملت مليون أوبجكت، الميموري مش هيشغلها 25 مليون ميثود…! الميموري هيشغلها 25 ميثود بس زي ما هم… وكل نسخة من الكلاس (كل أوبجكت يعني) بتزود في الميموري مساحة تخزينية للـ (ستيت س) بتاعت الأوبجكتس، أي بمساحة المتغيرات الأعضاء في الكلاس فقط… لكن كل نسخة بتستخدم نفس الميثود المتخزنة في الميموري…
2- إجابة الباشمهندس محمد جمال شافية ووافية…
النقطة التانية الاول : الباشمهندس محمد منورنا اصلا حتى من غير ما يجاوب و طبعا الباشمهندس عبد الله منورنا كمان و متشوق اشوف تعليقاته على المواضيع غير التقنية اكتر من التقنية بكتير
النقطة الاولى : طبعا النسخ كلها بتستخدم نفس الميثودس لا اختلاف ،، انا باسأل عن الميودث اللي بتتلتل علي دي و مش باستخدمها اصلا !
انا عاوز اعمل اوبجكت من JButton
كل الحكاية اني هاستخدم الكونستركتور بتاعه و addActionListerner()
بالرغم من اني لما اعمل الاوبجكت هاحط ميثودس كتييييير قوي في الميموري ،، و لسا بقا لما اعمل لي كمان جي فريم على جي بانل و حاجات كتير
دة اللي باعتبره استهلاك للميموري في حاجات انا اصلا مش هاستخدمها ،، يعني هو ما ينفعش تبقى الوراثة لحظة الكوول ؟