亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

java 變量作用范圍(竟然理解錯了)丟人 ——JA

系統 1801 0

這里結果輸出A啊,唉,這都錯,半路出家和尚啊……doit傳進去的參數作用范圍只是函數內部,Java是值調用。

突然想到,這里的String類型的之所以不變,是因為String類型的變量是不可變的。


可以看到結果如下:



也就是說,方法內部的變量執行另外的方法后,只有ArrayList的值改變了,而String和int類型的都沒有變。




]



一.先說說參數傳遞的幾個術語:


值調用(call by vale):表示方法接收的是調用者傳遞的值

引用調用(call by reference):表示方法接收的是調用者傳遞的變量地址

一個方法可以修改傳遞引用所對應的變量值,而不能修改傳遞值調用所對應的變量值



當調用如下代碼

harry = new Employee();

tripleSalary(harry);

時,具體的執行過程如下:

1).x被初始化為harry對象的拷貝,這里是一個對象的引用;

2).raiseSalary方法應用于這個對象引用.即x和harry同時引用的Employee對象薪金提高了200%.

3).方法調用結束后,參數變量x不再使用.但對象變量harry繼續引用那個薪金增至3倍Employee對象.

其過程如下圖:

java 變量作用范圍(竟然理解錯了)丟人 ——JAVA基礎--方法傳參

通過以上實例,可以看出對象參數傳遞的是對象引用的拷貝,對象引用及其他的拷貝同時引用同一個對象.

很多程序語言提供兩種傳遞方式:值傳遞和引用傳遞(C++和Pascal).

有些程序員認為java語言對對象參數傳遞也是用的引用調用.實際上是理解錯誤.這種錯誤具有一定的普遍性.下面通過一反例來說明該問題:

首先,編寫一個交換兩個Employee對象的方法:

public staitc void swap(Employee x,Emplyee y)

{

Employee temp = x;

x = y;

y = temp;

}

如果JAVA程序語言是對對象采用引用調用,那么這個方法就應該能夠實現交換數據的效果:

Employee a = new Employee("Alice",...);

Employee b = new Employee("Bob",...);

swap(a,b);

但是,方法并沒有改變存儲在變量a和b中的對象引用。swap方法的參數x和y被初始化為兩個對象引用的拷貝,這個方法交換的是這兩個拷貝。

在方法結束時,參數變量x和y被丟棄了。原來的變量a和b仍然引用這個方法調用之前所引用的對象如下圖:

java 變量作用范圍(竟然理解錯了)丟人 ——JAVA基礎--方法傳參

這個過程說明:java語言對對象采用的不是引用調用,實際上對象引用進行的是值傳遞。

最后總結一下在JAVA中,方法參數的使用情況:

*一個方法不能修改一個基本數據類型的參數;

*一個方法可以改變一個對象參數的狀態(屬性);

*一個方法不能實現讓對象參數引用一個新對象;


java 變量作用范圍(竟然理解錯了)丟人 ——JAVA基礎--方法傳參


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99re66热这里只有精品首页 | 九九在线观看高清免费 | 91视频免费观看高清观看完整 | 日韩毛片网 | 日本一级α一片免费视频 | 五月婷婷精品 | 免费国产一区二区在免费观看 | 最新四虎4hu影库地址在线 | 久久综合给合久久狠狠狠97色 | 中文在线免费视频 | 国产视频欧美 | 深夜日韩| 99热久久国产精品免费看 | 久久综合久久鬼色 | 色偷偷亚洲 | 国产成人咱精品视频免费网站 | 日韩精品一区二区三区在线观看 | 久久国产精品自在自线 | 久久久久久99 | 日韩在线视频www色 日韩在线视频不卡 | 黄页网址在线免费观看 | 日韩精品一区二区三区中文在线 | 天天爽天天干天天操 | 国产99re| 美国毛片一级视频在线aa | 日韩欧美亚洲国产一区二区三区 | 国产aav| 美国成人a免费毛片 | 精品一二区 | 国产精品毛片久久久久久久 | 国产一区二区三区免费视频 | 91婷婷| 九九热在线视频 | 亚洲第一综合色 | 福利免费视频 | 亚洲精品久久久久久久福利 | 天天搞夜夜操 | 私人免费影院入口 | 亚洲五月综合缴情婷婷 | 欧美高清免费精品国产自 | 俄罗斯一级成人毛片 |