English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:
type identifier [ = value][, identifier [ = value] ...];
格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。
以下列出了一些变量的声明示例。注意有些包含了初始化过程。
int a, b, c; // 声明三个int型整数:a、 b、c int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始化 z String s = "w3codebox"; // 声明并初始化字符串 s double pi = 3.14159; // 声明了双精度浮点型变量 pi char x = 'x'; // 声明变量 x 的值是字符 'x'。
Java语言支持的变量类型有:
类变量:独立于方法之外的变量,用 static 修饰。
示例变量:独立于方法之外的变量,不过没有 static 修饰。
局部变量:类的方法中的变量。
public class Variable { static int allClicks = 0; // 类变量 String str = "hello world"; // 实例变量 public void method() { int i = 0; // 局部变量 } }
تُنشأ المتغيرات المحلية في الطريقة أو طريقة التركيب أو الفقرة
تُنشأ المتغيرات المحلية عند تنفيذ الطريقة أو طريقة التركيب أو الفقرة، وتُتدمر عند إكمال تنفيذها؛
لا يمكن استخدام ميزة الوصول لتعديل المتغيرات المحلية؛
تكون المتغيرات المحلية مرئية فقط في الطريقة أو طريقة التركيب أو الفقرة التي تم ت宣言ة فيها؛
تُنشأ المتغيرات المحلية في السجل.
لا يوجد قيمة افتراضية للمتغيرات المحلية، لذا يجب تفعيل المتغير المحلي بعد ت宣言ة، قبل الاستخدام.
في المثال التالي، هو متغير محلي. يتم تعريفه في طريقة pupAge()، وحدوده تقتصر على هذه الطريقة.
package com.w3codebox.test; public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("عمر الكلبة هو: " + age); } public static void main(String[] args){ Test test = new Test(); test.pupAge(); } }
نتائج التجميع والتنفيذ للنموذج أعلاه كالتالي:
عمر الكلبة هو: 7
في المثال التالي لم يتم تفعيل متغير age، لذا سيكون هناك خطأ أثناء التجميع:
package com.w3codebox.test; public class Test{ public void pupAge(){ int age; age = age + 7; System.out.println("عمر الكلبة هو: " + age); } public static void main(String[] args){ Test test = new Test(); test.pupAge(); } }
نتائج التجميع والتنفيذ للنموذج أعلاه كالتالي:
Test.java:4 متغير عدد قد لا يكون قد تم تفعيله age = age + 7; ^ 1 خطأ
تُنشأ تغيرات المثال في الكائن، ولكن خارج الطرق أو طرق التركيب أو الفقرات;
بعد تجسيم الكائن، يتم تحديد قيمة كل تغير من تغيرات المثال؛
تُنشأ تغيرات المثال عند إنشاء الكائن، وتُتدمر عند تدمير الكائن؛
يجب أن تكون قيمة تغيرات المثال مرجعها على الأقل من قبل طريقة أو طريقة تركيب أو فقرة، مما يسمح للخارج بالوصول إلى معلومات تغيرات المثال عبر هذه الطرق؛
يمكن ت宣言 تغيرات المثال قبل أو بعد الاستخدام؛
يمكن استخدام ميزة الوصول لتعديل تغيرات المثال;
يمكن أن تكون تغيرات المثال مرئية للطرق أو طرق التركيب أو الفقرات في الكائن. يجب عادةً تحديد تغيرات المثال كخاصة. يمكن جعل تغيرات المثال مرئية للفروع من خلال استخدام ميزة الوصول؛
يمكن لتغيرات المثال أن تحتوي على قيم افتراضية. القيمة الافتراضية للتحويلات العددية هي 0، القيمة الافتراضية للتحويلات الحالة هي false، القيمة الافتراضية للتحويلات الربطية هي null. يمكن تحديد قيمة المتغير في وقت الت声明، أو في وقت التركيب؛
يمكن الوصول إلى متغيرات المثال مباشرة من خلال اسم المتغير. ولكن في الطرق الثابتة وأجهزة الكمبيوتر الأخرى، يجب استخدام الاسم المحدد الكامل: ObejectReference.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); System.out.println("الراتب: " + salary); } public static void main(String[] args){ Employee empOne = new Employee("w3codebox"); empOne.setSalary(1000.0); empOne.printEmp(); } }
نتائج التجميع والتنفيذ للنموذج أعلاه كالتالي:
$ javac Employee.java $ java Employee الاسم: w3codebox الراتب: 1000.0
تُدعى متغيرات الكلاس أيضًا متغيرات ثابتة، وتُؤرخ في الكلاس باستخدام كلمة المفتاح static، ولكن يجب أن تكون خارج الطريقة.
بغض النظر عن عدد العناصر التي يتم إنشاؤها من الفئة، يحصل الكلاس على نسخة واحدة فقط من متغيرات الكلاس.
تُستخدم المتغيرات الثابتة نادرًا باستثناء كـconstants. وتُعتبر constants المتغيرات التي يتم إعلانها كـpublic/private، final وstatic. لا يمكن تغيير القيم بعد تهيئتها.
تُخزن المتغيرات الثابتة في منطقة التخزين الثابتة. يتم إعلانها غالبًا كـconstants، وتبلغ استخدام المتغيرات الثابتة باستخدام static نادرًا.
تُتأسس المتغيرات الثابتة عند أول زيارة لها وتُتدمر عند انتهاء البرنامج.
متشابهة في الوصول مع المتغيرات المثالية. ولكن من أجل أن تكون المتغيرات الثابتة مرئية للمستخدمين للفئة، يتم إعلان معظم المتغيرات الثابتة كـpublic.
القيم الافتراضية مشابهة للمتغيرات المثالية. القيم الافتراضية للمتغيرات النوعية هي 0، القيم الافتراضية للمتغيرات الحالة هي false، والقيم الافتراضية للمتغيرات اللاصقة هي null. يمكن تحديد قيمة المتغير عند إعلانه أو في الطريقة المبنية. بالإضافة إلى ذلك، يمكن تهيئة المتغيرات الثابتة في الفقاعات الثابتة.
يمكن الوصول إلى المتغيرات الثابتة عبر:ClassName.VariableNameبالمعيار
عند إعلان متغيرات الكلاس كـpublic static final، يُنصح عادةً أن تكون أسماء متغيرات الكلاس كبيرة الحروف. إذا لم تكن المتغيرات الثابتة غير public وfinal، فإن طريقة تسميتها متطابقة مع تسمية المتغيرات المثالية والمتغيرات المحلية.
مثال:
import java.io.*; public class Employee { // salary هو متغير خاص ثابت private static double salary; // DEPARTMENT هو ثابت public static final String DEPARTMENT = "مطورين"; public static void main(String[] args){ salary = 10000; System.out.println(DEPARTMENT+"راتب متوسط:"+salary); } }
نتائج التجميع والتنفيذ للنموذج أعلاه كالتالي:
راتب المطورين العادي: 10000.0
ملاحظة:إذا أرادت فئة أخرى الوصول إلى هذا المتغير، يمكنها القيام بذلك كما يلي:Employee.DEPARTMENT.
في هذا الفصل تعلمنا أنواع المتغيرات في Java، وسنقدم في الفصل التالي استخدام ميزات التعبئة.