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

JAVA基礎--方法傳參

系統 2078 0

JAVA基礎--方法傳參

為啥拿這個當話題?

在初學者階段,許多童鞋都對方法傳參比較迷茫,知其然不知其所以然。

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

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

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

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

**JAVA語言總是采用值調用。

也就是說,JAVA方法得到的是所有參數值的一個拷貝,方法不能修改傳遞給他的任何參數變量的內容。

例如:

int age=100;

person.setAge(age);

在以上方法調用后,age 的值還是100;

下面再看一例子,假如某方法將一個變更值修改為原來的值的3倍:

public void addValue(int x){

x = 3 * x;

}

然后調用這個方法:

int percent = 10;

addValue(percnet);

無論如何調用,percent的值還是10,下面是執行過程:

1.x被初始化為percent值的一個拷貝(也就是10);

2.x被乘以3后,值變為30。但是percent仍然是10;

3.該方法結束后,參數變量x不再使用。

如圖一:

JAVA基礎--方法傳參

二.java方法傳參類型:

?

基本數據類型:(數字,布爾型)

對象引用類型:

基本數據類型傳參在上例中已經說過了,是不能修改基本數據類型參數的值的.

那么對于對象引用類型的傳參,能否修改呢?

先來看例子:

有如下方法:

public static void tripleSalary(Employee x)

?

{

?? x.raiseSalary(200);

}

當調用如下代碼

harry = new Employee();

tripleSalary(harry);

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

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

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

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

其過程如下圖:

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基礎--方法傳參


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本一级毛片大片免费 | 国产伦理一区二区三区 | 91精品国产免费久久国语麻豆 | 在线中文字幕视频 | 曰本不卡视频 | 97视频在线观看播放 | 999在线播放 | 久久久久欧美精品三级 | 夜夜春夜夜爽久久 | 2020国产成人精品免费视频 | 免费精品久久久视频 | 亚洲精品98久久久久久中文字幕 | 精品福利一区 | 老子不卡影院 | 色婷婷狠狠五月综合天色拍 | 色视频网 | 香蕉成人啪国产精品视频综合网 | 和日本免费不卡在线v | 四虎影院久久 | 欧美日韩一区二区三区自拍 | 中文乱码在线观看 | 九九99香蕉在线视频美国毛片 | 精品久久久久久久一区二区手机版 | 亚洲一区毛片 | 欧美亚洲中日韩中文字幕在线 | 国产精品亚洲片在线牛牛影视 | 久久久久美女 | 人人干天天干 | 久久精品爱 | 在线欧美视频 | 日本一级毛片免费 | 色综合小说天天综合网 | 欧美精品在线播放 | 精品一区二区三区四区乱码90 | 欧美啊v在线观看 | 久久综合色播 | 99re热精品视频国产免费 | 色综合天天综合中文网 | 老师邪恶影院a啦啦啦影院 老师在办公室被躁到白浆 老湿机午夜影院 | 欧美精品成人 | 国内精品免费久久影院 |