《Java基礎知識》Java變量的聲明、初始化和作用域


一.Java變量的聲明

在 Java 程序設計中,每個聲明的變量都必須分配一個類型。聲明一個變量時,應該先聲明變量的類型,隨后再聲明變量的名字。下面演示了變量的聲明方式。 
double salary; 
int age; 
Boolean op; 
其中第一項稱為變量類型,第二項稱為變量名。分號是必須的,這是 Java 語句的結束符號。

同一類型的不同變量,可以聲明在一行,也可以聲明在不同行,如果要聲明在同一行中,不同的變量之間用逗號分隔,例如下面的例子。 
int studentNumber,people;

聲明變量的同時可以為變量賦值,也可以聲明以后再賦值。如: 
int a=1; //聲明時賦值 
int a; a=1; //聲明后賦值

注意:在程序運行過程中,空間內的值是變化的,這個內存空間就稱為變量。為了操作方便,給這個空間取了個名字,稱為變量名,內存空間內的值就是變量值。所以,申請了內存空間,變量不一定有值,要想變量有值,就必須要放入值。

例如:“int x”; 定義了變量但沒有賦值,即申請了內存空間,但沒有放入值;int x=5; 不但申請了內存空間而且還放入了值,值為 5。

注意:沒有賦值的變量,系統將按下列默認值進行初始化。 
數據類型 初始值 
byte 0 
short 0 
int 0 
long 0L 
char ‘\u0000’ 
float 0.0f 
double 0 
boolean false 
所有引用類型 null(不引用任何對象) 
二.變量的作用域(全局變量|局部變量)

根據作用域(作用范圍)來分,一般將變量分為全局變量和局部變量。從字面上理解很簡單,全局變量就是在程序范圍之內都有效的變量,而局部變量就是在程序中的一部分內是有效的。

在Java中,全局變量就是在類的整個范圍之內,都有效的變量。而局部變量就是在類中某個方法函數內或某個子類內,有效的變量,下面將從實際程序代碼中慢慢的體會。

1.全局變量示例 

public class var {
    int a=10;
    public static void main(String[] args){
        var v=new var();
        v.print();
    }
    void print(){
        System.out.println("全局變量 a="+a);
    }
}

運行結果: 
全局變量 a=10

從以上例子可以看出,變量“a”的值在整個類中都有效。

2.局部變量示例 

public class Math1 {
    public static void main(String[] args){
        Math1 v=new Math1();
        System.out.println("這個是局部變量 c="+c);
    }
    void print(){
        int c = 20;
    }
}

以上代碼在編譯時,會出現錯誤,就是找不到變量“c”。這說明變量“c”只在方法“print()”中起作用,在方法外就無法再調用。

從上述代碼中可以看出,如果一個變量在類中定義,那么這個變量就是全局變量;而在類中的方法、函數中定義的變量就是局部變量。 
三.全局變量與局部變量的聲明

public class var {
    byte x; short y; int z; long a; float b;
    double c; char d; boolean e;
    public static void main(String[] args){
        var m=new var();
        System.out.println(" 打印數據 x="+m.x);
        System.out.println(" 打印數據 y="+m.y);
        System.out.println(" 打印數據 z="+m.z);
        System.out.println(" 打印數據 a="+m.a);
        System.out.println(" 打印數據 b="+m.b);
        System.out.println(" 打印數據 c="+m.c);
        System.out.println(" 打印數據 d="+m.d);
        System.out.println(" 打印數據 e="+m.e);
    }
}

運行結果: 
打印數據 x=0 
打印數據 y=0 
打印數據 z=0 
打印數據 a=0 
打印數據 b=0.0 
打印數據 c=0.0 
打印數據 d= 
打印數據 e=false

從以上例子可以看出,作為全局變量,無需初始化,系統自動給變量賦值。除了字符型數據被賦值為空,布爾型數據被賦值為 false,其他一律賦值為 0。下面再看一段程序代碼段。

public class var1 {
    void printnumber(){
        byte x; short y; int z; long a;
        float b; double c; char d; boolean e;
    }
    public static void main(String[] args){
        var1 m=new var1();
        System.out.println(" 打印數據 x="+m.x);
        System.out.println(" 打印數據 y="+m.y);
        System.out.println(" 打印數據 z="+m.z);
        System.out.println(" 打印數據 a="+m.a);
        System.out.println(" 打印數據 b="+m.b);
        System.out.println(" 打印數據 c="+m.c);
        System.out.println(" 打印數據 d="+m.d);
        System.out.println(" 打印數據 e="+m.e);
    }
}


這個程序段編譯時就會報錯,原因是所有局部變量都沒有初始化。從以上兩段程序代碼得出一個結果:全局變量可以不用進行初始化賦值工作,而局部變量必須要進行初始化賦值工作。

 

參考:https://blog.csdn.net/weixin_38470004/article/details/76468269


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM