به روزترين وبلاگ
 
آموزش جاوا

در اين قسمت از آموزش جاوا در سايت آموزش برنامه نويسي مي خواهيم بحث كاملي در مورد متغيرها در جاوا داشته باشيم. با ما همرا باشيد.
متغيرها دستكاري و اداره كردن برنامه را امكان پذير ميكند. هر متغير در جاوا يك نوع خاص دارد ، كه اندازه و نوع حافظه اي كه به متغير اختصاص يافته را تعيي ن مي كند. طيف وسيعي از مقادير مي توانند در حافظه ذخيره شوند و مجموعه اي از عمليات نيز مي تواند براي اين متغيرها استفاده شوند.

شما بايد تمام متغيرها را قبل از استفاده تعريف كنيد كه به تعريف متغييراعلان متغييرنيز گفته مي شود. فرم اوليه تعريف متغيير در زير آمده است:

1
data type variable [ = value][, variable [= value] ...] ;

در اينجا data typeيكي از انواع داده در جاوا است و variable نام متغير است. براي تعريف بيش از يك متغير از يك نوع مشخص شده، شما مي توانيد اسم متغييرها را پشت سر هم نوشته و با كاما جدا كنيد. در زير چند مثال از تعريف ومقداردهي اوليه درست متغييرها در جاوا آمده است:

1
2
3
4
5
int a, b, c;         // Declares three ints, a, b, and c.
int a = 10, b = 10;  // Example of initialization
byte B = 22;         // initializes a byte type variable B.
double pi = 3.14159// declares and assigns a value of PI.
char a = 'a';        // the char variable a iis initialized with value 'a'

در اين قسمت انواع مختلف متغير هاي موجود در زبان جاوا را توضيح دهد. سه نوع از متغيرها در جاوا وجود دارد:
متغير هاي محلي (Local variables)
متغيرهاي نمونه (Instance variables)
كلاس / متغيرهاي استاتيك (Class/static variables)

متغيرهاي محلي:

  • متغيرهاي محلي در متدها، سازنده ها، و يا در بلوك ها تعريف مي شوند.
  • متغير هاي محلي در زمان ورود به متدها، سازنده ها، و يا در بلوك ها ايجاد مي شوند و هنگامي كه از متدها، سازنده ها، و يا در بلوك ها خارج شويم از بين مي روند و نابود مي شوند.
  • اصلاح دسترسي (Access modifiers) نمي توانند براي متغيرهاي محلي استفاده شوند.
  • متغيرهاي محلي تنها در متدها، سازنده ها، و يا در بلوك هايي كه تعريف شده اند قابل مشاهده هستند.
  • متغير هاي محلي در سطح پشته داخلي اجرا مي شوند.
  • هيچ مقدار پيش فرض براي متغيرهاي محلي وجود ندارد بنابراين متغيرهاي محلي بايد تعريف شوند و بايد قبل از اولين استفاده يك مقدار اوليه به آنها اختصاص داده شود.

براي مثال:
در اينجا، ageيك متغير محلي است و در داخل متد pupAge()تعريف شده است و دامنه آن تنها به اين متد محدود است.

1
2
3
4
5
6
7
8
9
10
11
12
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

مثال:
مثال زير هم از age استفاده شده است اما بدون مقدار دهي اوليه آن، بنابراين خطا در زمان كامپايل واجراخواهد داد.

1
2
3
4
5
6
7
8
9
10
11
12
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;
^
۱ error

متغيرهاي نمونه:

  • متغيرهاي نمونه در داخل كلاس اما بيرون از متد، سازنده يا هر بلوكي كلاس تعريف مي شوند.
  • هنگامي كه يك فضا براي يك شي اختصاص داده مي شود، براي هر مقدار متغير نمونه يك اسلات ايجاد مي شود.
  • متغيرهاي نمونه زماني ايجاد مي شود كه يك شي با استفاده از كلمه كليدي  ‘new’ايجاد مي شود و زماني كه شي از بين مي رود نابود مي شود.
  • متغيرهاي نمونه براينگهداري مقاديري استفاده مي شوند كه   بيش از يك متد، سازنده و يا بلوك به آن نياز دارد، و يا براي نگهداري بخش هاي اساسي وضعيت يك شي كه بايد در سراسر كلاس آماده باشد، استفاده مي شوند.
  • متغيرهاي نمونه را مي توان در سطح كلاس قبل يا بعد از استفاده اعلان كرد.
  • اصلاح دسترسي را مي توان براي متغيرهاي نمونه استفاده كرد.
  • متغيرهاي نمونه براي تمام متدها، سازنده ها و بلوك ها  در كلاس قابل مشاهده است. به طور معمول، توصيه مي شود اين متغيرها خصوصي ‘ private ‘ (سطح دسترسي) ايجاد شوند. با اين حال با استفاده از كنترلهاي دسترسي مي توان اين متغييرها را براي زير كلاس ها هم قابل مشاهده كرد.
  • متغيرهاي نمونه مقادير پيش فرض دارند. براي اعداد مقدار پيش فرض ۰ است، براي Booleans مقدار پيش فرض false است و براي نوع داده ارجاع مقدار پيش فرض  null است. مقادير اين متغييرها  را مي توان در طول تعريف و يا در داخل سازنده اختصاص داد.
  • متغيرهاي نمونه مي توانند به طور مستقيم از طريق فراخواني با نام متغير در داخل كلاس قابل دسترسي باشند. با اين حال در متدهاي استاتيك و كلاس هاي مختلف (هنگامي كه متغيرهاي نمونه در دسترس قرارداده مي شوند) بايد با استفاده از نام كامل فراخواني شوند.ObjectReference.VariableName

مثال:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.io.*;
 
public class Employee{
   // this instance variable is visible for any child class.
   public String name;
    
   // salary  variable is visible in Employee class only.
   private double salary;
    
   // The name variable is assigned in the constructor. 
   public Employee (String empName){
      name = empName;
   }
 
   // The salary variable is assigned a value.
   public void setSalary(double empSal){
      salary = empSal;
   }
    
   // This method prints the employee details.
   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

متغيرهاي استاتيك / كلاس:

  • متغيرهاي كلاس كه به عنوان متغيرهاي استاتيك نيز شناخته مي شوند با كلمه كليدي static در داخل كلاس ، اما خارج از متد، سازنده و يا بلوك تعريف ميشوند.

 

  • تنها يك كپي از هر متغير كلاس در هر كلاس وجود دارد ، بدون در نظر گرفتن تعداد شي هايي كه از آن ايجاد مي شوند.
  • متغيرهاي استاتيك اغلب به عنوان ثابت (constant) استفاده مي شوند. ثابتها متغيرهايي هستند كه به صورت public/private ، final و static تعريف مي شوند. متغيرهاي ثابت هرگز مقدار اوليه خود را تغيير نمي دهند.
  • متغيرهاي استاتيك در حافظه استاتيك ذخيره مي شود. استفاده از متغيرهاي استاتيك نادر است مگر اينكه final تعريف شوند و به صورت ثابت عمومي يا خصوصي استفاده شوند.
  • متغيرهاي استاتيك زماني كه برنامه شروع مي شود، ايجاد مي شوند و زماني كه برنامه متوقف مي شود نابود مي شوند.
  • امكان مشاهده آنها شبيه متغيرهاي نمونه است. با اين حال، بسياري از متغيرهاي استاتيك به صورت عمومي (public) تعريف مي شوند زيرا آنها بايد براي كاربران كلاس در دسترس باشند.
  • مقادير پيش فرض اين متغييرها نيز هماننند متغيرهاي نمونه است. براي اعداد، مقدار پيش فرض ۰ است. براي Booleans مقدار پيش فرض false است. براي نوع داده ارجاع مقدار پيش فرض null است. مقادير اين متغييرها  را مي توان در طول تعريف و يا در داخل سازنده اختصاص داد. علاوه بر اين مقادير متغييرها  مي توانند در بلوك هاي ويژه  مقداردهي اوليه استاتيك اختصاص داده شوند.
  • متغيرهاي استاتيك مي توانند با فراخواني با نام كلاس قابل دسترسي باشند. ClassName.VariableName
  • هنگام تعريف متغير كلاس به صورت public static final، پس از آن نام متغيرها (ثابت). اگر متغيرهاي استاتيك عمومي و نهايي نباشند نحوه نامگذاري آنها همانند متغيرهاي نمونه و محلي است.

مثال:

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.io.*;
 
public class Employee{
   // salary  variable is a private static variable
   private static double salary;
 
   // DEPARTMENT is a constant
   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

توجه:براي دسترسي به متغيير ثابت از خارج از كلاس ثابت بايد به صورت زير فراخواني شود :
Employee.DEPARTMENT

منبع : آموزش برنامه نويسي

امتیاز:
 
بازدید:
[ ۲۵ تير ۱۳۹۵ ] [ ۰۱:۴۴:۲۶ ] [ الهام كشاورز ] [ نظرات (0) ]
{COMMENTS}
ارسال نظر
نام :
ایمیل :
سایت :
آواتار :
پیام :
خصوصی :
کد امنیتی :
.: Weblog Themes By ratablog :.

درباره وبلاگ

با سلام خدمت دوستان عزيز اميدوارم كه از مطالبي كه در اين وبلاگ منتشر ميكنم راضي باشيد لطفا نظراتتون رو بگيد موفق باشيد دوستان
نويسندگان
مطالب تصادفی
لینک های تبادلی
فاقد لینک
تبادل لینک اتوماتیک
لینک :
خبرنامه
عضویت   لغو عضویت
پنل کاربری
نام کاربری :
پسورد :
عضویت
نام کاربری :
پسورد :
تکرار پسورد:
ایمیل :
نام اصلی :
آمار
امروز : 7
دیروز : 13
افراد آنلاین : 1
همه : 1691
چت باکس
موضوعات وب
موضوعي ثبت نشده است
امکانات وب