در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 6 : انواع متغیر

با سلام به همه دوستان و همراهان Itpro امیدوارم که موفق باشید. در ادامه مباحث برنامه نویسی جاوا به انواع متغیرهای موجود در جاوا می پردازیم. در قسمت های قبل گفتیم که هر متغیر یک قسمت از حافظه است که نامی برای آن مشخص کرده ایم. سپس گفتیم که برای متغیرها باید نوع داده آن را مشخص کنیم. این نوع داده نشان می دهد که متغیر چه مقدار حافظه اشغال کرده است و چه چیزی را می تواند در خود نگهداری نماید و چه عملیاتی بر روی آن قابل انجام است. شما باید هر متغیر را قبل از این که از آن استفاده کنید معرفی نمایید. شکل اصلی معرفی متغیر به شکل زیر است

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

کلمه Data type در خط بالا نشان دهنده یکی از انواع داده ای است که در مطلب قبلی به آن پرداخته شد. برای آن که چند متغیر پشت سرهم از یک نوع تعریف کنیم باید آنها را با استفاده از کاما یا ، جدا نماییم. در کد زیر نمونه های صحیحی از تعریف متغیر ها را مشاهده می کنید.

int a, b, c;         // معرفی سه متغیر.
int a = 10, b = 10;  // معرفی به همراه مقداردهی
byte B = 22;         // معرفی یک متغیر از نوع بایت
double pi = 3.14159; // معرفی متغیر برای عدد پی
char a = 'a';        // معرفی متغیر کاراکتری

حال به شرح کامل انواع متغیرها می پردازیم.

  • متغیرهای محلی
  • فیلدها
  • متغیرهای کلاس (استاتیک)

متغیرهای محلی

متغیرهای محلی دارای ویژگی های زیر می باشند.

  • متغیرهای محلی در داخل متدها و یا constructorها و یا بلوک ها تعریف می شوند. بلوک فضای بین دو براکت{} را می گویند.
  • متغیرهای محلی زمانی ساخته می شوند که وارد متد یا constructor و یا بلوک کد می شویم و وقتی خارج بشیم از حافظه پاک خواهند شد.
  • برای متغیرهای محلی از Modifier دسترسی نمی توان استفاده کرد.
  • متغیرهای محلی فقط در محلی که تعریف شده اند قابل دسترس هستند. به طول مثال اگر در داخل متدی تعریف شده باشند فقط در داخل همان متد قابل دسترسی می باشند.
  • متغیرهای محلی در محل پشته سیستم تعریف می شوند.
  • وقتی که متغیر محلی تعریف می شوند هیچ مقدار پیشفرضی برای آنها در نظر گرفته نمی شود. بنابراین قبل از این که از متغیر تعریف شده استفاده کنید باید آن را مقدار دهی نمایید. برای مثال به کد زیر دقت کنید که age یک متغیر محلی است که داخل متد 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

حال در مثال زیر می بینید که از متغیر age بدون این که مقداردهی شود استفاده شده است بنابراین کدزیر دارای خطا است.

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

فیلدها

فیلدها دارا خواص زیر می باشند.

  • فیلدها داخل کلاس ها تعریف می شوند ولی داخل هیچ متد، constructor یا بلوکی نیستند
  • وقتی که یک شی از یک کلاس می سازیم. به اندازه تعداد فیلدهای آن شی به آن حافظه اختصاص داده می شود.
  • فیلد ها وقتی که با استفاده از کلمه کلیدی new یک شی را می سازیم ساخته می شوند و تا وقتی که خود شی از بین نرفته باقی می مانند.
  • فیلدها مقادیری را در خود نگهداری می کنند که توسط چند متد یا constructor مورد استفاده قرار می گیرد و فیلد ها باید در همه جای کلاس قابل دسترسی باشند.
  • برای فیلدها می توان از Modifierهای نیز می توان استفاده کرد. که اگر یک فیلد را به صورت public معرفی کنیم خارج از کلاس نیز قابل دسترسی است.
  • معمولا توصیه می شود که فیلدها را به شکل private معرفی کنیم. اما اگر بخواهیم برای کلاس های فرزند یا subclass ها قابل دسترس باشند آن را به صورت protected معرفی می کنیم.
  • فیلدها دارای مقدار پیشفرض هستند. این به این معنی است که اگر یک فیلد عددی معرفی کنیم مقدار آن به طور پیشفرض 0 خواهد بود.
  • مقدار اولیه فیلدها می تواند هم در زمان تعریف فیلد و هم در داخل constructor مقداردهی بشود.
  • برای دسترسی به فیلدهای یک شی باید نام شی را نوشته و پس از آن یک نقطه گذاشته و نام فیلد را باید نوشت.ObjectReference.VariableName البته این به شرطی قابل انجام است که فیلد مورد نظر public تعریف شده باشد. کد زیر مثالی برای فیلدها می باشد.
  • import java.io.*;
    
    public class Employee{
       // این فیلد برای همه اشیا و بیرون از کلاس قابل دسترس است.
       public String name;
       
       // این فیلد فقط در داخل کلاس قابل دسترس است.
       private double salary;
       
       // مقداردهی فیلد در داخل سازنده. 
       public Employee (String empName){
          name = empName;
       }
    
       // این فیلد با استفاده از یک تابع مقدار دهی می شود..
       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("Mehdi");
          empOne.setSalary(1000);
          empOne.printEmp();
       }
    }
    

خروجی کد به شکل زیر است.

name  : Mehdi
salary :1000.0

متغیرهای کلاس (استاتیک)

متغیرهای استاتیک دارای خواص زیر می باشند.

  • متغیرهای کلاس به این دلیل متغیر استاتیک نامیده می شوند که هنگام تعریف آنها از کلمه کلیدی static استفاده می شود. ولی باید این متغیرها را بیرون از متدها و سایر بلوک ها معرفی کرد.
  • خاصیت مهمی که این متغیرها دارند این است که اگر چند شی از یک کلاس داشته باشیم این متغیر بین همه یکسان و مشترک است. به این معنی که اگر دریکی از اشیا مقدار متغیر را تغییر بدهید در بقیه اشیا نیز تغییر خواهد کرد.
  • این متغیرها بیشتر برای نگهداری یک ثابت مورد استفاده قرار می گیرند و زیاد تغییر نمی کنند.
  • متغیرهای استاتیک زمانی که برنامه شروع می شوند ساخته می شوند و زمانی که برنامه تمام می شود از بین می روند.
  • معرفی متغیر استاتیک معمولا به صورت public تعریف می شوند.
  • مقدار پیشفرض این متغیرها مانند فیلد ها می باشد و می توان بدون مقداردهی اولیه از آنها و مقدار پیشفرض آنها استفاده کرد.
  • برای دسترسی به یک متغیر استاتیک می توان نام کلاس را تایپ کرده و سپس با زدن نقطه به متغیر مورد نظر دسترسی پیدا کرد.ClassName.VariableName
  • وقتی که یک متغیر کلاس را به صورت public و final تعریف می کنیم بهتر است که همه حروف نام آن را بزرگ بنویسیم. و در غیر این صورت مانند متغیر عادی معرفی می کنیم. برای مثال به کد زیر دقت کنید
  • import java.io.*;
    
    public class Employee{
       // متغیر استاتیک به صورت خصوصی معرفی شده
       private static double salary;
    
       // به عنوان یک ثابت تعریف شده است
       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

امیدوارم که درباره ی انواع متغیرها در جاوا ابهامی وجود نداشته باشدItpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #متغیر_عضو_کلاس #کار_با_متغیرها_در_جاوا #آموزش_جاوا #متغیرها_در_برنامه_نویسی #آموزش_گام_به_گام_جاوا #فیلدها_و_خواص_آن_در_جاوا #دسترسی_فیلدها_در_جاوا #دوره_آموزشی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
1 نظر
مرتضی عباسی

سپاس ....

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....