Java中傳值調(diào)用的理解和透析_第1頁
Java中傳值調(diào)用的理解和透析_第2頁
Java中傳值調(diào)用的理解和透析_第3頁
Java中傳值調(diào)用的理解和透析_第4頁
Java中傳值調(diào)用的理解和透析_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——Java中傳值調(diào)用的理解和透析Java中傳值調(diào)用的理解和透析

本文實(shí)例分析了Java中的傳值調(diào)用。共享給大家供大家參考。概括分析如下:

Java以引用的方式操作對(duì)象實(shí)例

可以確認(rèn)的是Java中操作對(duì)象的方式是以引用的方式操作對(duì)象。為了更深刻的了解這點(diǎn)我寫了如下代碼:

首先定義一個(gè)自定義類型

復(fù)制代碼代碼如下:publicclassPerson

Stringname;

PersonStringname

=name;

這里name默認(rèn)是public哦(和C++中class的默認(rèn)屬性不一樣哦)

然后Main函數(shù)中的調(diào)用如下:

復(fù)制代碼代碼如下:publicclassMain

/**

*@paramargs

*/

publicstaticvoidmainString[]args

//TODOAuto-generatedmethodstub

Personp1=newPersonPaul;

Personp2=newPersonGriefen;

S=++=+;

Persontmp;

tmp=p1;

p1=p2;

S=++=++=+;

這時(shí)候的輸出結(jié)果如下:

復(fù)制代碼代碼如下:=P=Griefen

=P=G=Griefen

咦?為什么是這樣子一個(gè)結(jié)果呢?作為一個(gè)CPPer我感到很困惑!說好的是引用啊,那么執(zhí)行了如下語句之后

復(fù)制代碼代碼如下:Persontmp;

tmp=p1;

p1=p2;

由于我按C++中引用的概念去理解這個(gè)操作,那么時(shí)候tmpp1p2這時(shí)候理應(yīng)都是同一個(gè)對(duì)象才對(duì),即都理應(yīng)指向p2這個(gè)對(duì)象啊。但是輸出結(jié)果鮮明證明這樣的理解是不對(duì)的!那么Java中的引用既然和C++中的引用不是一回事?!??!莫非和C++中的指針是同一回事嗎?

好!我們就按照C++中的指針來理解一下這個(gè)操作過程。

首先Persontmp;是舉行了一個(gè)指針的聲明剛好和C++中的指針聲明類似。而C++中明確的規(guī)定了引用的聲明是不成以這樣單獨(dú)寫的,引用聲明的時(shí)候就理應(yīng)指針一個(gè)對(duì)象,鮮明第一步的推理是正確的。這是一個(gè)好的開頭!然后tmp=p1;p1=p2;鮮明是tmp指向了p1,p1指向了p2,核對(duì)一下輸出結(jié)果。察覺是吻合的!

那說明Java中的引用假設(shè)和C++中的數(shù)據(jù)操作做對(duì)比的話,理應(yīng)和C++中的指針的概念更相近!

C++中指針實(shí)現(xiàn)上述功能

既然說上面的Java操作對(duì)象方式和C++中的指針好像,那我們就看一下C++中實(shí)現(xiàn)上面的`方式是怎么實(shí)現(xiàn)的呢

復(fù)制代碼代碼如下:#includestdafx.h

#include

#include

classPerson

public:

std::stringname;

public:

Personstd::stringname

this-name=name;

;

;

int_tmainintargc,_TCHAR*argv[]

Person*p1=newPersonPaul;

Person*p2=newPersonGriefen;

std::=p2-namestd::endl;

Person*tmp;

tmp=p1;

p1=p2;

std::=p2-namestd::endl;

tmp;

p1;

return0;

調(diào)試之后察覺輸出結(jié)果和上面Java的運(yùn)行結(jié)果是一樣的

任何語言的底層實(shí)現(xiàn)都是一致的

既然Java中的引用效果看起來和C++的指針是一樣的為什么Java中不直接叫指針呢?鮮明還是有識(shí)別的,譬如Java中的引用是不能舉行++運(yùn)算的,而C++的指針就可以而且移動(dòng)也會(huì)很肆意。鮮明就這一點(diǎn)來說Java就對(duì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論