بسم الله الرحمن الرحيم
السلام عليكم
لماذا عندما نستدعي method non static من method static يجب ان اخلق object من الكلاس ؟لماذا لا نقدر استدعائها باسم المثود فقط ؟
ما التفسير لها؟
وبارك الله فيكم
بسم الله الرحمن الرحيم
السلام عليكم
لماذا عندما نستدعي method non static من method static يجب ان اخلق object من الكلاس ؟لماذا لا نقدر استدعائها باسم المثود فقط ؟
ما التفسير لها؟
وبارك الله فيكم

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها
ال static method أو أحيانا تسمى ال Class Method .. هي داله تستدعى من خلال الفئه نفسها (Class) و ليس من خلال كائنات الفئه (objects)<br>و بالتالى ... عند إستدعاء هذه الداله على الفئه نفسها <br>MyClass.staticMethod()<br> ... و كانت هذه الداله بدورها تقوم بإستدعاء داله non-static ... ( و التى لا تستدعى إلا لكائن من الفئه ) .. فهنا على أي كائن سوف نقوم بإستدعاء هذه الداله ال non-static ؟؟؟<br><br>
السلام عليكم اخي
اولا شكرا على المرور
اريد توضيح السؤال
الان لنفرض انا عندي 3 method
Class1
{
public static void a()
{
Class1 ob = new Class1();
ob.b();
}
public void b()
{
a();
c();
}
public static void c()
{
a();
}
}
[code/]
كما في المثال method a ,b,c
a-->static
b-->non static
c-->static
الان عندما اريد ان استدعي method a,c من b من نفس الكلاس طبعا فقط علي ان اكتب السم المثود
وعندما اريد ان استدعي method c من a ايضا علي كتابة اسم الثود
لكن عندما اريد ان استدعي method b من a او من c يجب علي ان اخلق object من الكلاس واستدعي a
لماذا لا اكتب اسم المثود فقط ؟
إن شاء الله الصورة وضحت
وشكرا
تم تعديل هذه المشاركة بواسطة ayash في 28 أغسطس 2011 في 02:34

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها
اقتباسلماذا عندما نستدعي method non static من method static يجب ان اخلق object من الكلاس ؟لماذا لا نقدر استدعائها باسم المثود فقط ؟
الـ Class تمثل وصف لفئه معينه، هذه الفئه لها خصائص و سلوك عامه و ايضا خصائص و سلوك خاصه، حيث العام ينطبق على مجموعه معينه مثل مجموعة اصدقاء او اشخاص بحي او أشخاص بمدينه او أشخاص بدولة، اما السلوك الخاص فهو مرتبط بذات معينه و قد تختلف من شخص لأخر و قد تتشابه.
أمثال الخصائص العامه، الطول حيث كل البشر لهم طول، و من الخصائص الخاصه هو اختلاف الطول، نفس المنطق ينطبق على السلوك حيث إلقاء التحيه عند دخول مكان هو سلوك عام متعارف بين كل الناس و السلوك الخاص هو ألا تلقي التحيه.
بالتالي بتغييرك للعناصر العامه لفئه معينه بهذا انت تؤثر على كل التابعين لها، فإذا حددت لفئه البشر الا يتكلموا فستجد ان كل البشر اصبحوا صامتين و السبب انك تلاعبت بخاصيه عامه و لم تحدد اشخاص بذاتهم، أما إذا قمت بتحديد اشخاص بعينهم حينها سيتم التأثير عليهم فقط.
السلوك و الخصائص العامه هى الدوال و المتغيرات الإستاتيكيه حيث كل الكائنات من فئه معينه يمكنها القراءه او التعديل بهم، و لكن لتقوم بتغيير خصائص او سلوك شخص بذاته فأنت تحتاج لتحديده و لهذا داخل الدوال الإستاتيكيه عندما تريد تغيير عناصر بكائن معين لابد منك ان تحدده بشكل صريح.
و الله ولي التوفيق
تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 28 أغسطس 2011 في 04:43
مدونتي: C++ Tips and Tricks
شكرا على التوضيح الفكرة وصلت وبارك الله فيكم

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها