انجمن سایت کلیدستان



آموزش برنامه نویسی جاوا – قسمت پنجم – متغیرها در جاوازمان کنونی: ۱۳۹۵/۰۹/۱۸، ۰۴:۳۶ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: developzoom
آخرین ارسال: developzoom
پاسخ 1
بازدید 40

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش برنامه نویسی جاوا – قسمت پنجم – متغیرها در جاوا

آموزش برنامه نویسی جاوا – قسمت پنجم – متغیرها در جاوا

#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.javavariable 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


منبع : آموزش برنامه نویسی
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)