java方法 成員變量 局部變量概述

1. 方法

1.1 方法概述

         java中方法就是用來解決某件事或者實現某個功能的辦法。如果需要定義一個方法,則只能在類裏面定義,不能不能獨立定義一個方法。一旦將一個方法定義在某個類的類體內,如果這個方法使用了static修飾,則這個方法屬於這個類,否則這個方法屬於這個類的實例。

1.2 方法的語法格式

在Java中,聲明一個方法的具體語法格式如下:

                  修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2,......){

                          執行語句

                           ………

                          return返回值;

}

    修飾符:方法的修飾符比較多,有對訪問權限進行限定的,有靜態修飾符static,還有最終修飾符final等,這些修飾符在後面的學習過程中會逐步介紹

    返回值類型:用於限定方法返回值的數據類型

    參數類型:用於限定調用方法時傳入參數的數據類型

    參數名:是一個變量,用於接收調用方法時傳入的數據

    return關鍵字:用於結束方法以及返回方法指定類型的值

    返回值:被return語句返回的值,該值會返回給調用者

注意:方法的返回值必須爲方法聲明的返回值類型,如果方法中沒有返回值,則方法的返回值類型必須爲void,此時方法中的return可以省略。

1.3 方法的調用

方法調用圖解

 

同一個類的一個方法調用另一個方法時,如果被調用的方法是普通方法,則默認使用this作爲調用者;如果被調方法是靜態方法,則默認使用類作爲調用者。也就是說看起來某些方法能被獨立執行,但實際上還是使用this或者類來作爲調用者。

1.4 方法的重載

Java允許同一個類裏定義多個同名的方法,只要形參列表不同就行。如果同一個類中包含了兩個或兩個以上方法的方法名相同,但形參列表不同,則被稱爲方法重載。方法重載的要求就是兩同一不同:同一個類中方法名相同,參數列表不同,方法重載與返回值類型無關。

         重載的注意事項

             重載方法參數必須不同:

參數個數不同,如method(intx)與method(int x,int y)不同

參數類型不同,如method(intx)與method(double x)不同g

參數順序不同,如method(intx,double y)與method(double x,int y)不同

             重載只與方法名與參數類型相關與返回值無關

如voidmethod(int x)與int method(int y)不是方法重載,不能同時存在

             重載與具體的變量標識符無關

如method(intx)與method(int y)不是方法重載,不能同時存在

1.5 值傳遞機制

參數傳遞,可以理解當我們要調用一個方法時,我們會把指定的數值,傳遞給方法中的參數,這樣方法中的參數就擁有了這個指定的值,可以使用該值,在方法中運算了。這種傳遞方式,我們稱爲參數傳遞。在這裏,定義方法時,參數列表中的變量,稱爲形式參數;調用方法時,傳入給方法的數值,我們稱爲實際參數。 

當調用方法時,如果傳入的數值爲基本數據類型(包含String類型),形式參數的改變對實際參數不影響。

當調用方法時,如果傳入的數值爲引用數據類型(String類型除外),形式參數的改變對實際參數有影響。

2. 成員變量和局部變量

2.1 成員變量和局部變量

         成員變量指的是在類裏定義的變量,也就是field;局部變量指的是在方法中或者方法上定義的變量。成員變量被分爲類變量和實例變量兩種,定義成員變量時沒有static修飾的就是實例變量,有static修飾的就是類變量。

變量的初始值

成員變量:   默認是有初始值的

局部變量:   沒有初始值,所以必須先初始化才能使用.

class  ABC

{

         String info = null;//成員變量

         void  doWork(String name)

         {

                  System.out.println(x);

                  int age;//局部變量

                 

                  if(true) {

                            int  num;//局部變量

                    }

          }

           {

                            int  num;//局部變量

           }

           String  x ;

}

2.2 變量的作用域

    變量根據定義的位置不同,也決定了各自的作用域是不同的. 看變量所在的那對{}.

成員變量: 在整個類中都有效.

局部變量: 在開始定義的位置開始,到緊跟着結束的花括號爲止.

-------------------------------------------------------------------------------------------------------------------------

成員變量,可以先使用後定義,局部變量必須先定義而後才能使用.

2.3 變量的生命週期

變量的作用域指的是變量的存在範圍,只有在這個範圍內,程序代碼才能訪問它。當一個變量被定義時,它的作用域就確定了。變量的作用域決定了變量的生命週期,說明作用域不同,生命週期就不一樣。變量的生命週期指的是一個變量被創建並分配內存空間開始,到該變量被銷燬並清除其所佔內存空間的過程。

總結:

局部變量和成員變量區別

區別一:定義的位置不同

定義在類中的變量是成員變量

定義在方法中或者{}語句裏面的變量是局部變量

區別二:在內存中的位置不同

成員變量存儲在對內存的對象中

局部變量存儲在棧內存的方法中

區別三:聲明週期不同

成員變量隨着對象的出現而出現在堆中,隨着對象的消失而從堆中消失

局部變量隨着方法的運行而出現在棧中,隨着方法的彈棧而消失

區別四:初始化不同

成員變量因爲在堆內存中,所有默認的初始化值

局部變量沒有默認的初始化值,必須手動的給其賦值纔可以使用。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章