第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

java中的嵌套作用域

java中的嵌套作用域

萬(wàn)千封印 2021-11-24 15:11:05
當(dāng)我們嘗試這段代碼時(shí),它不起作用。public class f {public static void main(String[] args) {    { // aussen             int a = 1;            int b = 2;              { // innen                    System.out.println(a);                    // gibt 1 aus                    int b = 3;                         System.out.println(b); // gibt 3 aus            }           }}}   但是我們的教授。表示在內(nèi)部作用域中可以再次聲明變量,并且該內(nèi)部聲明用于變量 b 的內(nèi)部作用域。但是在互聯(lián)網(wǎng)上的http://www.mathcs.emory.edu/~cheung/Courses/170/Syllabus/08/scope.html 下“同名 r 的變量發(fā)生在內(nèi)部范圍內(nèi)”我們發(fā)現(xiàn)我們的錯(cuò)誤是合法的。這在過(guò)去的 9 年里有變化嗎?
查看完整描述

2 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

在嵌套作用域中創(chuàng)建同名的新變量稱為變量隱藏,Java 在多種情況下確實(shí)允許這樣做。這x是在嵌套范圍內(nèi)聲明四次的示例:


class MyTest {

  String x = "class member";


  void foo() {

    System.out.println("x = " + x);

    String x = "local variable";

    System.out.println("x = " + x);


    new Runnable() {

      String x = "inner class member";


      public void run() {

        System.out.println("x = " + x);

        String x = "inner local variable";

        System.out.println("x = " + x);

      }

    }.run();

  }

  public static void main(String[] list) {

    new test().foo();

  }

}

如您所見,它已經(jīng)有些令人困惑。當(dāng)您不小心使用錯(cuò)誤的變量時(shí),這可能會(huì)導(dǎo)致嚴(yán)重的錯(cuò)誤,即使代碼在不同的范圍內(nèi)非常好并且編譯時(shí)沒有警告。


例如,這段代碼應(yīng)該做什么?


for(int i=0; i<10; i++) {

  for(int i=0; i<10; i++) {

    System.out.println(i); 

  }

}

C++ 會(huì)說(shuō)“這些應(yīng)該是兩個(gè)單獨(dú)的變量”

JavaScript 會(huì)說(shuō)“這些應(yīng)該是同一個(gè)變量”

Java 說(shuō)“這令人困惑,請(qǐng)選擇更好的名稱”,并且不允許在單個(gè)函數(shù)中隱藏局部變量。


查看完整回答
反對(duì) 回復(fù) 2021-11-24
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

這沒有改變。Java 就是這樣設(shè)計(jì)的。局部變量不能被同一函數(shù)中定義的其他變量遮蔽。原因是一致性,所有外部變量對(duì)內(nèi)部作用域也是可見的。

這是一種情況,Java 的工作方式與 C 和 C++ 不同,后者允許同一函數(shù)中的變量相互遮蔽。


查看完整回答
反對(duì) 回復(fù) 2021-11-24
  • 2 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)