《java基础知识》Java变量作用域
? ? ? ? 對于在作用域里定義的變量,作用域同時決定了它的“可見性”以及“存在時間”。在JAVA里,作用域是由花括號的位置決定的。JAVA用一對大括號作為語句塊的范圍,稱為作用域,在作用域里定義的變量,只有在該作用域結束之前才可使用。?
在JAVA中,變量的作用域分為四個級別:類級、對象實例級、方法級、塊級。
* 類級變量又稱全局級變量或靜態(tài)變量,需要使用static關鍵字修飾。類級變量在類定義后就已經(jīng)存在,占用內(nèi)存空間,可以通過類名來訪問,不需要實例化。
* 對象實例級變量就是成員變量,實例化后才會分配內(nèi)存空間,才能訪問。成員變量是定義在方法之外,類之內(nèi)的。成員變量隨著對象的創(chuàng)建而存在,隨著對象的消失而消失。
* 方法級變量就是在方法內(nèi)部定義的變量,就是局部變量。局部變量在調(diào)用了對應的方法時執(zhí)行到了創(chuàng)建該變量的語句時存在,局部變量的作用域從它被聲明的點開始,一旦出了自己的作用域馬上從內(nèi)存中消失。
* 塊級變量就是定義在一個塊內(nèi)部的變量,變量的生存周期就是這個塊,出了這個塊就消失了,比如?if、for 語句的塊。塊是指由大括號包圍的代碼,例如:
{int x = 12;/* only x available */{int q = 96; /* both x & q available */ }/* only x available *//* q “out of scope” */ }說明:
* 方法內(nèi)部除了能訪問方法級的變量,還可以訪問類級和實例級的變量。
* 塊內(nèi)部能夠訪問類級、實例級變量,如果塊被包含在方法內(nèi)部,它還可以訪問方法級的變量。
案例:
public class Test{public static String name = "TEST"; // 類級變量public int i; // 對象實例級變量// 屬性塊,在類初始化屬性時候運行 {int j = 2;// 塊級變量 }public void test1() {int j = 3; // 方法級變量if(j == 3) {int k = 5; // 塊級變量 }// 這里不能訪問塊級變量,塊級變量只能在塊內(nèi)部訪問System.out.println("name=" + name + ", i=" + i + ", j=" + j);}public static void main(String[] args) {// 不創(chuàng)建對象,直接通過類名訪問類級變量 System.out.println(Test.name);// 創(chuàng)建對象并訪問它的方法Test t = new Test();t.test1();} }參考:https://blog.csdn.net/bupa900318/article/details/80555929
轉(zhuǎn)載于:https://www.cnblogs.com/jssj/p/11323896.html
總結
以上是生活随笔為你收集整理的《java基础知识》Java变量作用域的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下kafka的部署
- 下一篇: java美元兑换,(Java实现) 美元