實例變量與局部變量
實例變量是一種存在於面向對象編程中的變量類型。它是一個在類中定義的變量,該類的每個對象都持有該變量的單獨副本。另一方面,局部變量的使用並不侷限於面向對象的編程語言。它是一個變量,只能在定義它的特定代碼塊(如函數、循環塊等)內進行評估。由於這個原因,局部變量被稱為具有局部作用域。
什麼是實例變量?
實例變量在面向對象編程中用於存儲類中每個對象的狀態。它們也被稱為成員變量或字段變量。在Java中,實例變量的聲明不使用static關鍵字。實例變量中存儲的值對於每個對象都是唯一的(每個對象都有一個單獨的副本),其中存儲的值表示該對象的狀態。實例變量的空間在堆中分配時,該對象在堆中分配。因此,只要對象處於活動狀態,實例變量都會保存在內存中。例如,一輛車的顏色獨立於另一輛車的顏色。所以汽車對象的顏色可以存儲在一個實例變量中。實際上,實例變量在類內部聲明,在方法外部聲明。通常,實例變量被聲明為private,因此只能在聲明的類中訪問它們。
什麼是局部變量?
局部變量是具有局部作用域的變量,它們在特定的代碼塊中聲明。局部變量可以看作是方法用來存儲其臨時狀態的變量。局部變量的作用域是使用聲明變量的位置來確定的,因此不使用特殊關鍵字。通常,對局部變量的訪問限制在聲明它的代碼塊內(即在該代碼塊的左括號和右大括號之間)。局部變量通常存儲在調用堆棧中。這將允許遞歸函數調用維護它們自己的本地變量副本,以存儲在單獨的內存地址空間中。當方法完成其執行時,有關該方法的信息將從調用堆棧中彈出,同時還會銷燬存儲的本地變量。
實例變量和局部變量的區別是什麼?