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