一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

關(guān)于Java變量的作用域分析

大?。?/span>0.5 MB 人氣: 2017-09-25 需要積分:1

  目錄

  1.靜態(tài)作用域與動(dòng)態(tài)作用域

  2.變量的作用域

  3.Java 中變量的作用域

  4.Java 欺騙作用域

  5.Java 執(zhí)行上下文

  6.Java 中的作用域鏈

  7.Java 中的閉包

  8.Java 中的模塊

  一

  靜態(tài)作用域與動(dòng)態(tài)作用域

  在電腦程序設(shè)計(jì)中,作用域(scope,或譯作有效范圍)是名字(name)與實(shí)體(entity)的綁定(binding)保持有效的那部分計(jì)算機(jī)程序。不同的編程語(yǔ)言可能有不同的作用域和名字解析。而同一語(yǔ)言內(nèi)也可能存在多種作用域,隨實(shí)體的類型變化而不同。作用域類別影響變量的綁定方式,根據(jù)語(yǔ)言使用靜態(tài)作用域還是動(dòng)態(tài)作用域變量的取值可能會(huì)有不同的結(jié)果。

  包含標(biāo)識(shí)符的宣告或定義;

  包含語(yǔ)句和/或表達(dá)式,定義或部分關(guān)于可運(yùn)行的算法;

  嵌套嵌套或被嵌套嵌套。

  名字空間是一種作用域,使用作用域的封裝性質(zhì)去邏輯上組群起關(guān)相的眾識(shí)別子于單一識(shí)別子之下。因此,作用域可以影響這些內(nèi)容的名字解析。

  程序員常會(huì)縮進(jìn)他們的源代碼中的作用域,改善可讀性。

  作用域又分為兩種,靜態(tài)作用域和動(dòng)態(tài)作用域。

  靜態(tài)作用域又叫做詞法作用域,采用詞法作用域的變量叫詞法變量。詞法變量有一個(gè)在編譯時(shí)靜態(tài)確定的作用域。詞法變量的作用域可以是一個(gè)函數(shù)或一段代碼,該變量在這段代碼區(qū)域內(nèi)可見(jiàn)(visibility);在這段區(qū)域以外該變量不可見(jiàn)(或無(wú)法訪問(wèn))。詞法作用域里,取變量的值時(shí),會(huì)檢查函數(shù)定義時(shí)的文本環(huán)境,捕捉函數(shù)定義時(shí)對(duì)該變量的綁定。

  function f() {

  function g() {

  }

  }

  靜態(tài)(詞法)作用域,就是可以無(wú)須執(zhí)行程序而只從程序源碼的角度,就可以看出程序是如何工作的。從上面的例子中可以肯定,函數(shù) g 是被函數(shù) f 包圍在內(nèi)部。

  大多數(shù)現(xiàn)在程序設(shè)計(jì)語(yǔ)言都是采用靜態(tài)作用域規(guī)則,如C/C++、C#Python、Java、Java……

  相反,采用動(dòng)態(tài)作用域的變量叫做動(dòng)態(tài)變量。只要程序正在執(zhí)行定義了動(dòng)態(tài)變量的代碼段,那么在這段時(shí)間內(nèi),該變量一直存在;代碼段執(zhí)行結(jié)束,該變量便消失。這意味著如果有個(gè)函數(shù)f,里面調(diào)用了函數(shù)g,那么在執(zhí)行g(shù)的時(shí)候,f里的所有局部變量都會(huì)被g訪問(wèn)到。而在靜態(tài)作用域的情況下,g不能訪問(wèn)f的變量。動(dòng)態(tài)作用域里,取變量的值時(shí),會(huì)由內(nèi)向外逐層檢查函數(shù)的調(diào)用鏈,并打印第一次遇到的那個(gè)綁定的值。顯然,最外層的綁定即是全局狀態(tài)下的那個(gè)值。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?