六月丁香综合婷婷,激情婷婷综合久久久久,久久精品全国免费观看国产,欧美一区二区激情视频,亚洲精品自拍视频,亚洲日韩中文字幕丝祙制服,免费的黄色av网站

技術(shù)中心

這里象征著我們的態(tài)度和能力

Java語言與C++語言在作用域上的差異
作者:中國IT實驗室    來源:中國IT實驗室    發(fā)布時間:2012-01-01      瀏覽次數(shù):15960
分享到:
歡迎進入Java社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進入

  Java語言與C++語言是目前最流行的編程語言。兩者的編程思想雖然有一定的共同性,但是在很多方面仍然存在著比較大的差異。如兩者在作用域上仍然存在著很大的差異。下面筆者就分析一下這兩門語言在作用域上的差異,以幫助大家進一步認識Java語言的優(yōu)勢。

  差異一:變量作用域的不同。

  如下圖,這段程序代碼是符合C++語言的語法要求的。其可以在C語言下正常運行。但是其在Java語言平臺下編譯的時候,就會被告知有錯誤。其格式、關(guān)鍵字上面都沒有錯誤。那么錯誤到底是這么呢?這就關(guān)系到變量的作用域。

      {

       float y=3.15

       {

        float y=3.15

      }

      }

  作用域就決定了其定義的變量名的可見性與生命周期。在C++語言(包括其衍生出來的其他語言)與Java語言中,都是用一定花括號來代表一個作用域的。如上面的代碼,就表示有兩個作用域。外面一對花括號代表一級作用域;里面一對花括號代表二級作用域,依次類推。通常情況下,一級作用域中定義的變量,對其下級作用率都是有效的。也就是說,其下級作用域可以直接引用上級作用域中定義的變量。但是在二級作用域中,可以更改一級作用率中設(shè)置的變量值,不過這個更改只在二級作用域內(nèi)部有效。如上面這個代碼,在二級作用域中可以再定義一個y變量,重新賦值。注意,其實在二級作用域中定義的變量與一級作用域中定義的變量,雖然名字相同,但是他們不是同一個變量。如果此時在一級作用域外,有其他代碼引用這個y變量的話,則其的值仍然是3.14,而不會是3.15。也就是說,在二級作用域中定義的變量,只在其內(nèi)部有效。對于上級作用域是沒有絲毫影響的。也就是說,在作用域中定義的變量只在其作用域內(nèi)有效。出了其作用域外,其內(nèi)部設(shè)置的變量就全部無效了。

  這個作用域的設(shè)置其實Java語言與C++語言是類似的。但是在細節(jié)上Java語言又多了一條限制。如上表的代碼所示,雖然在上面的代碼中變量y在兩個不同的作用域中定義,照理來說是兩者是互不干涉,可以共存。但是在Java編譯器中,是不允許有這種情況存在的。把上面這個代碼在Java編譯器中編譯的話,編譯器會通知程序開發(fā)人員,說這個變量y已經(jīng)定義過。然后編譯會以錯誤告終。雖然在C++語言中在不同級別的作用域中定義名字相同的變量是允許的,而在Java語言中則不行,這并不代表在變量的作用域上有所不同。其實從本質(zhì)上來說,兩者變量的作用域是相同的。只是對于Java語言來說,其又多加了一條限制。在Java語言中,即使作用域不同,其定義的變量名字也不能夠相同。這主要是為了提高Java代碼的可讀性,防止混淆才定義了這條規(guī)則。

  差異二:對象作用域的差異。

  Java語言與C++語言一樣,都是面向?qū)ο蟮恼Z言。不過兩者在實現(xiàn)機制上有很大的不同。就拿對象的作用域來說,就有很大的差異。這也導(dǎo)致了兩個面向?qū)ο蟮恼Z言在實現(xiàn)細節(jié)上的巨大差異。

  首先Java程序員需要明白的是,Java對象作用域與變量的作用域是不同的。如上面的分析,變量的作用域只在作用域內(nèi)部有效。如在二級作用域內(nèi)定義的變量,超出了二級作用域,那么就無效了。但是對象則不同,其可以存在于作用域之外。如現(xiàn)在在某個作用域內(nèi)定義了一個name_full對象。當(dāng)脫離這個作用域的時候,這個對象的引用是消失了。但是剛才創(chuàng)建的這個對象仍然實實在在的保存在內(nèi)存中。在Java程序的運行過程中,只要通過傳遞或者復(fù)制對象引用的手段,那么在其他作用域內(nèi)仍然可以訪問這個對象。也就是說,只要我們有這個需要,那么在某個作用域內(nèi)創(chuàng)建的對象其會一直存在并可以在作用域外的其他任何一個地方進行訪問。當(dāng)然前提是要通過復(fù)制或者傳遞等手段把對象引用傳遞到其他的作用域中。這就是Java對象與Java變量在作用域上最大的不同。

[1] [2] 下一頁

4000-880-989
(24小時熱線)
聯(lián)系客服
微信公眾號

官方公眾號

小程序

?2008-2022 CORPORATION ALL Rights Reserved. 昆明奧遠科技有限公司版權(quán)所有 滇ICP備09003328號-1 滇公網(wǎng)安備 53011102000818號 增值電信業(yè)務(wù)經(jīng)營許可證號:滇B2-20110045
昆明那家網(wǎng)絡(luò)公司好,新媒體運營,網(wǎng)站優(yōu)化,網(wǎng)絡(luò)推廣,網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站推廣,云南網(wǎng)站公司,昆明新媒體公司,云南網(wǎng)紅主播,昆明SEO公司,昆明網(wǎng)站建設(shè),昆明網(wǎng)絡(luò)推廣,昆明網(wǎng)站優(yōu)化,昆明網(wǎng)站推廣,紅河網(wǎng)站建設(shè),大理網(wǎng)絡(luò)公司,曲靖網(wǎng)絡(luò)公司,麗江網(wǎng)站設(shè)計,昭通網(wǎng)絡(luò)公司,保山大數(shù)據(jù)服務(wù),智慧高速建設(shè),智慧校園服務(wù),云南IDC服務(wù)商,網(wǎng)絡(luò)安全測評,等保測評,網(wǎng)站關(guān)鍵詞排名優(yōu)化服務(wù),服務(wù)客戶盡超2000余家,一切盡在奧遠科技,服務(wù)電話:13888956730