代碼塊和做用域

大括號括起來的就是代碼塊spa

  • 有名字的代碼塊——if-else 代碼塊、for 循環代碼塊、main方法代碼塊
  • 代碼塊也叫體,例如 for 循環體、main方法體
  • 代碼塊能夠嵌套

變量的做用域code

  • 代碼塊裏能夠建立和使用變量
  • 代碼塊裏能夠使用外層代碼塊的變量
  • 可是在外層代碼塊裏不能夠使用內層代碼塊裏的變量。(是否能夠使用變量,也稱爲變量在某個代碼塊的可見性。也就是說,外層代碼塊建立的變量對內層代碼塊可見,內層代碼塊中建立的變量對外層代碼塊不可見。)
  • 內層命名空間(或者說是做用域)不能夠重複定義外層代碼塊的變量,可是能夠使用外層代碼塊的變量
  • 代碼塊不管嵌套多少層,都遵循以上變量的可見性的規則。

做用域和命名空間blog

  • 同一個命名空間中的變量不能夠重名
  • 爲了不變量名衝突,因此必須有命名空間
public class CodeBlock {
    public static void main(String[] args) {
        // 內部代碼塊裏的做用域(命名空間)是能夠使用到外部代碼塊中的變量的。
        // 反過來,外部沒法使用到代碼塊做用域中的變量。
        // 代碼塊的做用域隨着代碼塊的執行的結束而結束。
        int outer = 100;
        {
            int inner = 10;
            System.out.println("outer的值是" + outer + "。 inner的值是" + inner);
        }

        // 代碼塊能夠多層嵌套。做用域的生命週期規則相同。
        int a1 = 1;
        {
            int a2 = a1 + 1;
            {
                int a3 = a2 + 1;
                System.out.println("a3=" + a3);
            }
            {
                int a3 = a2 + 10;
                System.out.println("a3=" + a3);
            }
            System.out.println("a2=" + a2);
        }
    }
}
相關文章
相關標籤/搜索