لمحة جافاوية 26: أنواع الثوابت

السلام عليكم

في الدنيا أكره نوعين من الناس
1- الأغبياء
الذين لا يكفون عن مفاجأتي بذكائهم
(يحسبون أنهم أذكى الناس)
2- المنتفعين
عندما يحتاج إليك تراه كل يوم
لو طلبت منه أن يمسح لك حذاءك -أعزكم الله-
فلن يتهاون في تلبية طلبك
بمجرد أن تنتهي حاجته إليك
ربما لو رآك في الشارع
لم يكلف نفسه رد السلام
عن نفسي أتجاهل كل الطرفين لأنك لا تأخذ منهم سوى حرقة الدم
اليوم سأتكلم عن أنواع الثوابت في جافا
الثوابت في جافا تنقسم إلى ثلاثة أقسام وهي:
1- ثابت constant على مستوى الفئة class
2- ثابت على مستوى الكائن Object
3- ثابت على مستوى الدالة method

النوع الأول والنوع الثاني تعرف في نطاق الفئة class
النوع الثالث يعرف في نطاق الدالة method

1- ثابت constant على مستوى الفئة class

يجب إعطاؤه قيمة في وقت إعلانه decleration
في حالة عدم إعطاؤه قيمة ستحصل على خطأ في الترجمة compilation error
صورة تعريفه

public static final SomeType abc=somevalue;

أمثلة عليه ثابت السرعة ثابت الجذب …إلخ
وسمي بثابت على مستوى الفئة Class
لأن كل الكائنات objects من الفئة class التي يعرف فيها ترى له قيمة وحيدة

2- ثابت على مستوى الكائن Object
يجب إعطاؤه القيمة الخاصة به إما
أ- عند إعلانه (يصبح شبيه بالثابت على مستوى الفئة مع اختلاف بسيط)
ب- أو عن طريق صانع الكائنات
في حالة عدم إعطاؤه قيمة ستحصل على خطأ في الترجمة compilation error
صورة تعريفه

public final SomeType abc[=somevalue];

ملاحظة: ما بين القوسين [] في العبارة السابقة اختياري
وسمى بثابت على مستوى الكائن Object
لأنك لا تستطيع تغييره بالنسبة للكائن ويوجد منه نسخة مختلفة من كائن لآخر
مثال:عدد الأرجل للكائن الحي فهي ثابتة لكل كائن على حدة مختلفة من كائن لآخر

الفرق بين ثابت constant على مستوى الفئة class
والثابت على مستوى الكائن Object الذي صحل على قيمته عند إعلانه
المترجم compiler يتعامل مع الثوابت على مستوى الفئة
كأنها غير موجودة
بمعنى أنه عند الترجمة يقوم باستبدال كل ثابت منها بقيمته مباشرة
فلا يأخذ وقت في إحضار قيمته أثناء عملية التشغيل
أما في حالة الثوابت على مستوى الكائن فأن المترجم يضعه في عين الإعتبار

3- ثابت على مستوى الدالة method
يكون في حيز دالة معينة
صورة تعريفه

final SomeType abc[=somevalue];

ملاحظة: ما بين القوسين [] في العبارة السابقة اختياري
يأخذ قيمة مرة واحدة فقط
إما عند إعلانه أو في أي وقت داخل الدالة
المترجم compiler يتعامل مع الثوابت على مستوى الدالة
كأنها غير موجودة
بمعنى أنه عند الترجمة يقوم باستبدال كل ثابت منها بقيمته مباشرة

بهذا أكون أنهيت هذه اللمحة
سأتكلم في المرة القادمة عن الثبوت على مستوى الدالة والفئة
دالة ثابتة فئة ثابتة

تحياتي

Tags: , , , , , , ,

One Response to “لمحة جافاوية 26: أنواع الثوابت”

  1. […] الثبات على مستوى الفئات والدوال وعدنا أن يكمله في موضوع سابق لكنه لم يقم بذلك ولكنه كالعادة لم يوف بوعده وأنا أكره […]

Leave a Reply