الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

static

مغلق
بدأه علاء الدين عبدالله ياسين في 1 يونيو 2005 · 6 رد · 624 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله و بركاته :D

كنت اود ان افهم فعليا ما معنى

static var.

static method

static block

علما بانى اعلم ان static var. تعنى ان هذا المتغير يوضع فى الذاكرة و اى تغيير فيه يراه الجميع

و غير ذلك من المعلومات المشوشه

و سؤالى الأساسى هو :

متى استخدم static داخل الكود (h)

اقترب للناس حســــابهم و هم فى غفلة معرضون

#2

لا تستخدمه إلا إذا أردت تعريف شيء من مواصفات (شيء) معين!

#3

السلام عليكم و رحمة الله و بركاته

جزاك الله خيرا اخ ابومازن :D و لكنك عرفت الماء بالماء

:wacko: :wacko: :wacko: :wacko: :wacko: :wacko: :wacko: :wacko:

اقترب للناس حســــابهم و هم فى غفلة معرضون

#4

السلام عليكم

أولا static var. تعلم ما هي. :)

static method طرق تستطيع استعمالها بدون إنشاء الكائن (أي بدون استعمال ...new MyClass() ). ويستحسن استخدامها مثلا في فئات الخدمات utilities classes، كحساب عدد الأيام بين تاريخين، إجراء عمليات على النصوص ... أي إجراءات مساعدة فقط.

مثال

/**
* تصريح بالفئة التي تحتوي على static method
**/
public class Utilities {
// طريقة تتفقّد هل الجملة فارغة أم لا.
public static boolean isEmptyString (String strMyString ) 
{
     if (strMyString != null && strMyString.length() != 0)
        return false;
     return true;
  }
 }
/**
الفئة التي ستستعمل الطريقة  
**/
public class MyClass {
String strName = "burkan";
public static void main (String args[]) {
//لاحظ أننا نستعمل isEmpty بدون انشاء كائن Utilities
if  (Utilities.isEmptyString (strName))
    System.out.println("The name is empty");
else
   System.out.println("The name is : " + strName );
}
}
#5

أما فيما يخص static bloc، فهي جزء من الكود داخل الفئة محدودة بحاظنتين:

public class MyClass {
   .
   .
   .

   static {
 //static bloc

   .
   .
   .
    }  

   //باقي الكود
}

حيث كل ما هو متواجد داخل static bloc ينفّذ مرّة واحدة فقط عند انشاء أوّل كائن للفئة.

:rolleyes:

والله أعلم.

#6

السلام عليكم و رحمة الله و بركاته

جزاك الله خيرا يا اخ بركان :D :D :D :D

اقترب للناس حســــابهم و هم فى غفلة معرضون

#7

الstatic variables يمكنك ان تعتبرها shared variables بين الobjects من نفس النوع فكلهم يستطيعون استخدامها و كلهم يجدون نفس القيمة في المتغير و اذا غير احد الobjects هذه القيمة فانها تتغير بالنسبة لكل object

احيانا تكون الstatic variables من نوع ليس abstract datatype يعني ليس int, double...etc فتحتاج ان تقوم باستخدام الconstructor الخاص بها لتستطيع استخدامها و لكن ستجد مشكلة هو اين اضع هذا الكود هل اضعه في الconstructor الخاص بالclass نفسها؟؟؟ّّّ!!! و لكن هذا معناه ان كل object يتم تعريفه من الclass سينفذ هذا الكود و يدمر القيمة التي توجد في الstatic variables و لهذا ظهرت الstatic blocks فهي كأنها Constructor خاص بالstatic variables فانه ينفذ مرة واحدة فقط من اجل عمل الinitializations اللازمة و هو موجود في ال#C باسم الstatic constructor

اما بالنسبة للStatic Functions فهي دوال عامة تختص بنوع معين من الobjects و لكن لاتحتاج الى انشاء object لتستخدمها

ارجو ان اكون وضحت النقطة بشكل صحيح

Sr. Software Development Engineer
Hulu, LLC
My Blogs

هذا الموضوع مغلق.

مواضيع مشابهة