في لغة جافا، يجب الإعلان عن كافة المتغيرات قبل الاستخدام. التنسيق الأساسي للإعلان عن المتغيرات هو كما يلي:
type identifier [ = value][, identifier [= value] ...] ;
وصف التنسيق: النوع هو نوع بيانات Java. المعرف هو اسم المتغير. يمكن الإعلان عن متغيرات متعددة من نفس النوع مفصولة بفواصل.
المدرجة أدناه هي بعض الأمثلة على الإعلانات المتغيرة. لاحظ أن بعضها يتضمن عملية تهيئة.
int a, b, c; // 声明三个int型整数:a、b、c。 int d = 3, e, f = 5; // 声明三个整数并赋予初值。 byte z = 22; // 声明并初始化z。 double pi = 3.14159; // 声明了pi。 char x = 'x'; // 变量x的值是字符'x'。
أنواع المتغيرات التي تدعمها لغة جافا هي:
- المتغيرات المحلية: المتغيرات في أساليب فئة ما.
- متغيرات الحالة: متغيرات مستقلة عن الأساليب، ولكن بدون تعديل ثابت.
- متغيرات الفئة: متغيرات مستقلة عن الأساليب، معدلة بالثبات.
public class Variable{ static int allClicks=0; // 类变量String str="hello world"; // 实例变量public void method(){ int i =0; // 局部变量} }
جافا المتغيرات المحلية
- يتم الإعلان عن المتغيرات المحلية في الأساليب أو المنشئات أو كتل البيانات؛
- يتم إنشاء المتغيرات المحلية عند تنفيذ الأساليب أو المنشئات أو كتل البيانات. عند تنفيذها، سيتم تدمير المتغيرات؛
- لا يمكن استخدام معدّلات الوصول على المتغيرات المحلية؛
- تكون المتغيرات المحلية مرئية فقط في الطريقة أو المنشئ أو كتلة البيان التي تم الإعلان عنها؛
- يتم تخصيص المتغيرات المحلية على المكدس.
- المتغيرات المحلية ليس لها قيمة افتراضية، لذا بعد الإعلان عن متغير محلي، يجب تهيئته قبل استخدامه.
مثال 1
في المثال التالي، العمر هو متغير محلي. يتم تعريفه في طريقة pupAge()، ويقتصر نطاقه على هذه الطريقة.
public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
نتائج التجميع والتشغيل للمثال أعلاه هي كما يلي:
Puppy age is: 7
مثال 2
في المثال التالي، لم تتم تهيئة متغير العمر، لذلك حدث خطأ أثناء الترجمة.
public class Test{ public void pupAge(){ int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
نتائج التجميع والتشغيل للمثال أعلاه هي كما يلي:
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
متغيرات المثال
- يتم الإعلان عن متغيرات الحالة داخل الفصل الدراسي، ولكن خارج الأساليب والمنشئات وكتل البيانات؛
- عندما يتم إنشاء كائن، يتم تحديد قيمة كل متغير مثيل؛
- يتم إنشاء متغيرات المثيل عند إنشاء الكائن وتدميرها عند إتلاف الكائن؛
- يجب أن تتم الإشارة إلى قيمة متغير المثيل من خلال طريقة أو مُنشئ أو كتلة بيان واحدة على الأقل، بحيث يمكن للخارج الحصول على معلومات متغير المثيل من خلال هذه الطرق؛
- يمكن الإعلان عن متغيرات الحالة قبل الاستخدام أو بعده؛
- يمكن لمعدلات الوصول تعديل متغيرات المثيل؛
- تكون متغيرات المثيل مرئية للطرق أو المنشئات أو كتل البيانات في الفصل الدراسي. بشكل عام، يجب جعل متغيرات الحالة خاصة. يمكن جعل متغيرات الحالة مرئية للفئات الفرعية باستخدام معدلات الوصول؛
- متغيرات المثيل لها قيم افتراضية. القيمة الافتراضية للمتغيرات الرقمية هي 0، والقيمة الافتراضية للمتغيرات المنطقية هي false، والقيمة الافتراضية لمتغيرات النوع المرجعي فارغة. يمكن تحديد قيمة المتغير في وقت الإعلان أو في المنشئ؛
- يمكن الوصول إلى متغيرات المثيل مباشرة من خلال اسم المتغير. لكن في الأساليب الثابتة والفئات الأخرى، يجب عليك استخدام الاسم المؤهل بالكامل: ObjectReference.VariableName.
مثال:
import java.io.*; public class Employee{ // 这个成员变量对子类可见public String name; // 私有变量,仅在该类可见private double salary; //在构造器中对name赋值public Employee (String empName){ name = empName; } //设定salary的值public void setSalary(double empSal){ salary = empSal; } // 打印信息public void printEmp(){ System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]){ Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }
نتائج التجميع والتشغيل للمثال أعلاه هي كما يلي:
name : Ransika salary :1000.0
متغيرات الفئة (المتغيرات الثابتة)
- تسمى متغيرات الفئة أيضًا بالمتغيرات الثابتة ويتم الإعلان عنها باستخدام الكلمة الأساسية الثابتة في الفئة، ولكن يجب أن تكون خارج الأساليب والمنشئات وكتل البيانات.
- بغض النظر عن عدد الكائنات التي ينشئها الفصل، فإن الفصل لديه نسخة واحدة فقط من متغيرات الفصل.
- نادراً ما يتم استخدام المتغيرات الثابتة إلا عندما يتم الإعلان عنها كثوابت. تشير الثوابت إلى المتغيرات المعلنة كأنواع عامة/خاصة ونهائية وثابتة. لا يمكن تغيير الثوابت بعد التهيئة.
- يتم تخزين المتغيرات الثابتة في منطقة التخزين الثابتة. غالبًا ما يتم الإعلان عن المتغيرات كثوابت، ونادرًا ما يتم الإعلان عن المتغيرات باستخدام الثابت وحده.
- يتم إنشاء المتغيرات الثابتة في بداية البرنامج ويتم تدميرها في نهاية البرنامج.
- لديه رؤية مماثلة لمتغيرات المثيل. ولكن لكي تكون مرئية لمستخدمي الفئة، يتم تعريف معظم المتغيرات الثابتة كأنواع عامة.
- القيم الافتراضية تشبه متغيرات الحالة. القيمة الافتراضية للمتغيرات الرقمية هي 0، والقيمة الافتراضية للمتغيرات المنطقية هي false، والقيمة الافتراضية لأنواع المراجع فارغة. يمكن تحديد قيمة المتغير عند الإعلان عنه أو في المنشئ. بالإضافة إلى ذلك، يمكن أيضًا تهيئة المتغيرات الثابتة في كتل البيانات الثابتة.
- يمكن الوصول إلى المتغيرات الثابتة من خلال: ClassName.VariableName.
- عندما يتم الإعلان عن متغير فئة كنوع نهائي ثابت عام، يجب أن يستخدم اسم متغير الفئة أحرفًا كبيرة. إذا لم يكن المتغير الثابت من النوع العام والنهائي، فإن طريقة التسمية الخاصة به تتوافق مع طريقة تسمية متغيرات الحالة والمتغيرات المحلية.
مثال:
import java.io.*; public class Employee{ //salary是静态的私有变量private static double salary; // DEPARTMENT是一个常量public static final String DEPARTMENT = "Development "; public static void main(String args[]){ salary = 1000; System.out.println(DEPARTMENT+"average salary:"+salary); } }
نتائج التجميع والتشغيل للمثال أعلاه هي كما يلي:
Development average salary:1000
ملاحظة: إذا أرادت فئات أخرى الوصول إلى هذا المتغير، فيمكنها الوصول إليه بهذه الطريقة: الموظف. القسم.
تعرفنا في هذا الفصل على أنواع متغيرات Java، وفي الفصل التالي سنقدم استخدام معدّلات Java.