ممكن حدا يشرحلي
ايش الفائدة من
static block
وليش بنستخدمه
مع مثال
وشكراً
يتطلب الصف في بعض الأحيان نوعا من التمهيد قبل أن يكون جاهزا لإنشاء كيانات.
مثال ذلك، ربما يحتاج إلى إنشاء اتصال بموقع بعيد.
وربما يحتاج ايضا الى تمهيد متغيرات ساكنه static محددة قبل استخدام أي من الطرق الساكنه في الصنف.
وللتعامل مع هذه الأوضاع، تتيح جافا الاعلان عن كتله ساكنه.
والكتله الساكنه تنفذ عند تحميل الصنف أولا. وهكذا تنفذ قبل التمكن من استخدام الصنف لأي غايه أخرى.
مثال
class StaticBlock{
static double root1, root2;
static{
System.out.println("Inside static block. ");
root1=Math.sqrt(4.0);
root2=Math.sqrt(9.0);
}
StaticBlock(String msg){
System.out.println(msg);
}
}
class SDemo{
public static void main(String [] args){
StaticBlock ob=new StaticBlock("Inside Constructor ");
System.out.println("Square root1 is :"+ StaticBlock.root1 );
System.out.println("Square root2 is :"+ StaticBlock.root2 );
}
}لاحظ بانه تم تنفيذ امر الطباعة في الكتله(static block) قبل تنفيذ امر الطباعه في المشيد (Constructor) .
بالتوفيق
.jpg)
السلام عليكم,
باختصار شديد ال static block مثل ال constructor لكن الفرق أنك كما تعلم أن ال constructors تستخدم لعمل initialization لل instance variables و لكن ال static block تستخدم لعمل initialization لل static variables.
هذا الموضوع مغلق.