久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java語(yǔ)言與C++語(yǔ)言差異在哪里,?

 昵稱10620986 2012-08-21

導(dǎo)校網(wǎng) http://www. 2012-8-20 16:50:32 我要咨詢
Java語(yǔ)言與C++語(yǔ)言是目前最流行的編程語(yǔ)言。兩者的編程思想雖然有一定的共同性,,但是在很多方面仍然存在著比較大的差異,。如兩者在作用域上仍然存在著很大的差異。下面筆者就分析一下這兩門語(yǔ)言在作用域上的差異,,以幫助大家進(jìn)一步認(rèn)識(shí)Java語(yǔ)言的優(yōu)勢(shì),。
  差異一:變量作用域的不同。
  作用域就決定了其定義的變量名的可見性與生命周期,。在C++語(yǔ)言(包括其衍生出來(lái)的其他語(yǔ)言)與Java語(yǔ)言中,,都是用一定花括號(hào)來(lái)代表一個(gè)作用域的。如上面的代碼,,就表示有兩個(gè)作用域,。外面一對(duì)花括號(hào)代表一級(jí)作用域;里面一對(duì)花括號(hào)代表二級(jí)作用域,依次類推,。通常情況下,,一級(jí)作用域中定義的變量,對(duì)其下級(jí)作用率都是有效的,。也就是說(shuō),,其下級(jí)作用域可以直接引用上級(jí)作用域中定義的變量。但是在二級(jí)作用域中,,可以更改一級(jí)作用率中設(shè)置的變量值,,不過(guò)這個(gè)更改只在二級(jí)作用域內(nèi)部有效。如上面這個(gè)代碼,,在二級(jí)作用域中可以再定義一個(gè)y變量,,重新賦值。注意,,其實(shí)在二級(jí)作用域中定義的變量與一級(jí)作用域中定義的變量,,雖然名字相同,,但是他們不是同一個(gè)變量。如果此時(shí)在一級(jí)作用域外,,有其他代碼引用這個(gè)y變量的話,,則其的值仍然是3.14,而不會(huì)是3.15,。也就是說(shuō),,在二級(jí)作用域中定義的變量,只在其內(nèi)部有效,。對(duì)于上級(jí)作用域是沒(méi)有絲毫影響的,。也就是說(shuō),在作用域中定義的變量只在其作用域內(nèi)有效,。出了其作用域外,,其內(nèi)部設(shè)置的變量就全部無(wú)效了。
  這個(gè)作用域的設(shè)置其實(shí)Java語(yǔ)言與C++語(yǔ)言是類似的,。但是在細(xì)節(jié)上Java語(yǔ)言又多了一條限制,。如上表的代碼所示,雖然在上面的代碼中變量y在兩個(gè)不同的作用域中定義,,照理來(lái)說(shuō)是兩者是互不干涉,,可以共存。但是在Java編譯器中,,是不允許有這種情況存在的,。把上面這個(gè)代碼在Java編譯器中編譯的話,編譯器會(huì)通知程序開發(fā)人員,,說(shuō)這個(gè)變量y已經(jīng)定義過(guò),。然后編譯會(huì)以錯(cuò)誤告終。雖然在C++語(yǔ)言中在不同級(jí)別的作用域中定義名字相同的變量是允許的,,而在Java語(yǔ)言中則不行,,這并不代表在變量的作用域上有所不同。其實(shí)從本質(zhì)上來(lái)說(shuō),,兩者變量的作用域是相同的,。只是對(duì)于Java語(yǔ)言來(lái)說(shuō),其又多加了一條限制,。在Java語(yǔ)言中,,即使作用域不同,其定義的變量名字也不能夠相同,。這主要是為了提高Java代碼的可讀性,,防止混淆才定義了這條規(guī)則。
  差異二:對(duì)象作用域的差異。
  Java語(yǔ)言與C++語(yǔ)言一樣,,都是面向?qū)ο蟮恼Z(yǔ)言,。不過(guò)兩者在實(shí)現(xiàn)機(jī)制上有很大的不同。就拿對(duì)象的作用域來(lái)說(shuō),,就有很大的差異,。這也導(dǎo)致了兩個(gè)面向?qū)ο蟮恼Z(yǔ)言在實(shí)現(xiàn)細(xì)節(jié)上的巨大差異。
  首先Java程序員需要明白的是,,Java對(duì)象作用域與變量的作用域是不同的,。如上面的分析,變量的作用域只在作用域內(nèi)部有效,。如在二級(jí)作用域內(nèi)定義的變量,,超出了二級(jí)作用域,那么就無(wú)效了,。但是對(duì)象則不同,,其可以存在于作用域之外。如現(xiàn)在在某個(gè)作用域內(nèi)定義了一個(gè)name_full對(duì)象,。當(dāng)脫離這個(gè)作用域的時(shí)候,這個(gè)對(duì)象的引用是消失了,。但是剛才創(chuàng)建的這個(gè)對(duì)象仍然實(shí)實(shí)在在的保存在內(nèi)存中,。在Java程序的運(yùn)行過(guò)程中,只要通過(guò)傳遞或者復(fù)制對(duì)象引用的手段,,那么在其他作用域內(nèi)仍然可以訪問(wèn)這個(gè)對(duì)象,。也就是說(shuō),只要我們有這個(gè)需要,,那么在某個(gè)作用域內(nèi)創(chuàng)建的對(duì)象其會(huì)一直存在并可以在作用域外的其他任何一個(gè)地方進(jìn)行訪問(wèn),。當(dāng)然前提是要通過(guò)復(fù)制或者傳遞等手段把對(duì)象引用傳遞到其他的作用域中。這就是Java對(duì)象與Java變量在作用域上最大的不同,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多