Java參數(shù)傳遞

c語言中,有指針傳遞,可以通過指針操作內(nèi)存的數(shù)據(jù),如交換變量的值可以這樣

#include<stdio.h>
void swap(int *a,int *b){
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
    printf("%d,%d\n",*a,*b);//輸出6,5
}

int  main()
{
    int m=5;
    int n=6;
    swap(&m,&n);
    printf("%d,%d\n",m,n);//輸出6,5
    return 0;
}

輸出結(jié)果:
6,5
6,5

但是Java中沒有指針,但是有引用數(shù)據(jù)類型傳遞,那傳遞引用數(shù)據(jù)類型可以實(shí)現(xiàn)交換變量的值嗎?

public class Type {

    public static void main(String[] args) {
        Integer m=new Integer(5);
        Integer n=new Integer(6);
        swap(m,n);
        System.out.println(m+","+n);//輸出5,6

    }
    static void  swap(Integer a,Integer b){
        int temp=0;
        temp=a;
        a=b;
        b=temp;
        System.out.println(a+","+b);//輸出6,5

}
}

輸出結(jié)果:
5,6
6,5

結(jié)果是并沒有交換成功,原因是什么呢? 探究一下傳參的過程是怎么樣的?

Java中的數(shù)據(jù)分兩種的數(shù)據(jù)類型:

  • 基本數(shù)據(jù)類型
  • 引用數(shù)據(jù)類型

程序中m,n為引用數(shù)據(jù)類型,m,n存放在棧中,對象存放的堆中

memory

調(diào)用swap方法的時(shí)候,開辟椨邪穑空間,參數(shù)的值a,b由m,n決定,傳遞參數(shù)相當(dāng)于,給變量a,b賦值,也就是引用數(shù)據(jù)類型a,b指向了堆中相應(yīng)的對象,swap方法中交換a,b,但是m,n的指向并沒有改變,所以變量交換沒有成功.

哪里如何利用這個(gè)功能實(shí)現(xiàn)變量交換呢?

使用Number類

public class Number {
    int i;
    public int getI() {
        return i;
    }
    public void setI(int i) {
        this.i = i;
    }
}

public class Type2 {
    public static void main(String[] args) {
        Number m = new Number();
        Number n = new Number();
        m.setI(5);
        n.setI(6);
        swap(m,n);
        System.out.println(m.getI()+","+n.getI());//輸出6,5
    }

    static void swap(Number a, Number b) {
        int temp;
        temp = a.getI();
        a.setI(b.getI());
        b.setI(temp);
        System.out.println(a.getI()+ "," + b.getI());//輸出6,5
    }
}

輸出結(jié)果:
6,5
6,5

封裝Number類,提供set,get方法,實(shí)現(xiàn)了跟C語言傳遞指針的效果,對內(nèi)存的的數(shù)據(jù)操作.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗅辣,一起剝皮案震驚了整個(gè)濱河市陶缺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖宛乃,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡铛只,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門糠溜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淳玩,“玉大人,你說我怎么就攤上這事非竿⊥勺牛” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵红柱,是天一觀的道長承匣。 經(jīng)常有香客問我,道長锤悄,這世上最難降的妖魔是什么韧骗? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮零聚,結(jié)果婚禮上袍暴,老公的妹妹穿的比我還像新娘。我一直安慰自己隶症,他們只是感情好容诬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沿腰,像睡著了一般览徒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颂龙,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天习蓬,我揣著相機(jī)與錄音纽什,去河邊找鬼。 笑死躲叼,一個(gè)胖子當(dāng)著我的面吹牛芦缰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枫慷,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼让蕾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了或听?” 一聲冷哼從身側(cè)響起探孝,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎誉裆,沒想到半個(gè)月后顿颅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡足丢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年粱腻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斩跌。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绍些,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耀鸦,到底是詐尸還是另有隱情柬批,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布揭糕,位于F島的核電站萝快,受9級(jí)特大地震影響锻霎,放射性物質(zhì)發(fā)生泄漏著角。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一旋恼、第九天 我趴在偏房一處隱蔽的房頂上張望吏口。 院中可真熱鬧,春花似錦冰更、人聲如沸产徊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舟铜。三九已至,卻和暖如春奠衔,著一層夾襖步出監(jiān)牢的瞬間谆刨,已是汗流浹背塘娶。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痊夭,地道東北人刁岸。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像她我,于是被迫代替她去往敵國和親虹曙。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Java中的變量類型基本分為兩種:基本類型和引用類型番舆。 基本類型為全小寫字母酝碳,如:int, long, short...
    JohnShen閱讀 756評論 0 1
  • Java參數(shù)傳遞 給出了基本類型和引用類型參數(shù)傳遞時(shí)行為的示例,并給出了String類型作為參數(shù)傳遞時(shí)表現(xiàn)出的和一...
    panberglee閱讀 553評論 0 2
  • 1. 最近有個(gè)朋友在風(fēng)景優(yōu)美的地方弄了一套房子合蔽,房子很大击敌,大到有十多個(gè)房間。目前不知道她是要做民宿還是做啥拴事,反正一...
    圓圓yolanda閱讀 381評論 2 2
  • 覺察日記 事實(shí):第一次被教練的經(jīng)歷沃斤,教練夏潔老師,時(shí)常達(dá)1個(gè)小時(shí)56分鐘刃宵,教練經(jīng)過如下: 首先衡瓶,關(guān)于目標(biāo)的界定,我...
    LiannaYe閱讀 448評論 0 2
  • 日復(fù)一日的勞作還是毫無痕跡的社會(huì)漂泊牲证。人生總得選擇不一樣的做法去滿足自己選擇的人生哮针。錯(cuò)了就錯(cuò)了,其實(shí)沒啥值得追究坦袍,...
    請用_心聽閱讀 216評論 0 0