精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久
注冊
|
提交需求
|
訂閱
|
English
首 頁
解決方案
產(chǎn) 品
服 務(wù)
支 持
EDN系統(tǒng)
成功案例
關(guān)于我們
聯(lián)系我們
樹結(jié)構(gòu)圖
EDN系統(tǒng)
圖形圖像
網(wǎng)絡(luò)安全
項(xiàng)目專題
WEB開發(fā)
辦公系列
操作系統(tǒng)
數(shù)據(jù)庫
程序設(shè)計(jì)
TOP 10
在Foxmail中如何使…
Ftp 子命令
BigDecimal
MSN在線客服功能模塊使…
會員卡使用方法說明
DataInputStr…
留言板功能說明
CScript
BufferedInpu…
設(shè)置打印機(jī)
您現(xiàn)在的位置:
>
技術(shù)沙龍
>
程序設(shè)計(jì)
>
Java
>
未分類
>
Java參數(shù)傳遞的一些心得
相關(guān)軟件
>
Java參數(shù)傳遞的一些心得
創(chuàng)建者:
webmaster
更新時(shí)間:
2005-05-16
22:14
Java是種面向?qū)ο蟮恼Z言,可以說,Java所有一切都是對象,這句話很好的描述的Java和別的面向?qū)ο蟮木幊陶Z言,例如Object Pascl的區(qū)別。而且,這個(gè)特性,也對函數(shù)的參數(shù)傳遞有著重要的影響。
用過dephi的人都知道,在object Pascal中,函數(shù)的參數(shù)傳遞有兩種方式,值傳遞和變參傳遞,簡單的說,就是加不加var的區(qū)別。加了var,就是變參傳遞,實(shí)質(zhì)上傳遞的是這個(gè)參數(shù)的指針,也就是說,在函數(shù)中對參數(shù)的任何修改,實(shí)際上就是參數(shù)對應(yīng)的變量的修改,這樣程序執(zhí)行完后,作為參數(shù)傳進(jìn)來的變量的值可能發(fā)生改變。而不加var,則就是值傳遞,實(shí)質(zhì)上,就是將值先拷貝一份,然后,將拷貝的傳遞給函數(shù),這樣,修改實(shí)際上對原來的變量沒有影響,(因?yàn)橹皇菍截惖男薷模┒?,等到函?shù)返回時(shí),函數(shù)調(diào)用的空間退棧,拷貝的參數(shù)空間也被收回。
而Java來說,由于所有的皆是對象,所以,參數(shù)傳遞有所不同。其中,沒有了var的區(qū)別。但實(shí)際上,由于對象作為參數(shù),也就是相當(dāng)于var式傳遞,因?yàn)?,傳遞給函數(shù)的是原對象的指針,這樣,對傳入的參數(shù)的修改,實(shí)際上就是作為參數(shù)的對象的修改,在這一點(diǎn)上,Java的參數(shù)傳遞實(shí)際上和var方式很象。但在簡單數(shù)據(jù)類型做參數(shù)上,Java卻是遵循值傳遞的原則,即在函數(shù)中修改不會對傳入的簡單數(shù)據(jù)類型的變量產(chǎn)生影響,比如象int類型的參數(shù),即使函數(shù)中有過修改,也不會對傳入的原變量有影響。由于這樣,我們在對簡單類型的變量作修改時(shí)(比如,想讓它們作函數(shù)參數(shù),然后在函數(shù)中修改它們),會誤以為真的修改了變量,其實(shí)不然,知道值參的傳遞就會很容易明白這個(gè)道理。所以,我們需要將變量包裝成一個(gè)對象(例如,設(shè)一個(gè)對象,以一個(gè)int值的變量作參數(shù))這樣,以此對象作參數(shù),當(dāng)在函數(shù)中對對象中的int變量修改后,原對象中的值便得到修改了。
由此,我們可以更加深入的看看遞歸函數(shù)的問題。遞歸函數(shù)通過不斷的調(diào)用自身,其實(shí)在做一個(gè)不斷的入棧然后出棧的過程,隨著遞歸的進(jìn)行,新遞歸函數(shù)不斷的入棧,等到條件滿足返回時(shí),再不斷的出棧。這樣,對于值參的話,每次遞歸都要將其現(xiàn)在的數(shù)據(jù)保存到棧中,而變參,則只保存引用,所以,遞歸函數(shù)在不同的編程語言中的應(yīng)用要相應(yīng)的注意。比如,數(shù)組類型的數(shù)據(jù),在object pascal中要定義數(shù)組類型的type,這樣,每次遞歸時(shí),實(shí)際上是將當(dāng)前的數(shù)組參數(shù)作值參存儲,即每次遞歸就要存儲相應(yīng)的數(shù)組,這樣,每次遞歸過程實(shí)際上是對一個(gè)新的數(shù)組進(jìn)行操作。而java就不同,它是以數(shù)組變量作參數(shù),這樣,每次的遞歸操作實(shí)際上是對同一個(gè)數(shù)組進(jìn)行操作。由于有這樣的不同,所以,需要在對數(shù)組改變后作還原操作,這樣,每次才能正確地遞歸。
以上是點(diǎn)小小的心得,呵呵,如果有錯(cuò),請與我聯(lián)系。
相關(guān)文章
前一則:
JAVA對數(shù)字證書的常用操作
后一則:
小談JDBC中的連接與連接池
本頁查看次數(shù):
公司公告
|
客戶調(diào)查
|
法律聲明
|
誠聘英才
|
給我們投稿
|
繁
閃
頭像
京ICP備05031245號
Copyright @ REDCOME.com ALL Rights Reserved
北京怡康軟件科技有限公司 地址:北京市昌平區(qū)東小口立湯路188號北方明珠大廈1號樓2708 郵編:102218 電話:84909966 傳真:84909900 QQ:335601661