靜態物件和例項物件的區別

2021-10-23 03:41:22 字數 716 閱讀 3243

public class statictest 

public static void main(string args)

staticint = 3 random = 3

staticint = 4 random = 3

是否和你想的一樣?上述例子很好的解釋了靜態變數和例項變數的區別。

下面來乾貨了,注意收好。

區別總結如下:

例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。結合上述給出的例子。每建立乙個例項物件,就會分配乙個random,例項物件之間的random是互不影響的,所以就可以解釋為什麼輸出的兩個random值是相同的了。

靜態變數不屬於某個例項物件,而是屬於整個類。只要程式載入了類的位元組碼,不用建立任何例項物件,靜態變數就回被分配空間,靜態變數就可以被使用了。結合上述給出的例子,無論建立多少個例項物件,永遠都只分配乙個staticint 變數,並且每建立乙個例項物件,staticint就會加一。

總之,例項變數必須建立物件後,才可以通過這個物件來使用;靜態變數則可以直接使用類名來引用(如果例項物件存在,也可以通過例項物件來引用)。

其實,這也可以解釋,為什麼static修飾的方法不用在例項物件建立後,可以呼叫。而沒有static修飾的方法必須要與物件關聯在一起,必須建立乙個物件後,才可以在該物件上進行方法呼叫。

C 靜態建立物件和動態建立物件的區別

我們應該都知道c 中建立類的物件有兩種方式 靜態建立,例如b b 靜態建立乙個類物件,就是由編譯器為物件在棧空間中分配記憶體。使用這種方法,是直接呼叫類的建構函式。2 動態建立,例如 b b new b 動態建立乙個類物件,就是使用new運算子為物件在堆空間中分配記憶體。這個過程分為兩步 第一步執行...

Dir類的靜態方法和例項物件

一 dir類的靜態方法 dir類提供了一組靜態方法用於目錄的建立,刪除以及遍歷,可以指定路徑全名稱增刪查目錄,預設操作物件是當前指令碼工作目錄。獲取當前指令碼工作目錄 dir pwd屬性或者dir.getwd 改變當前指令碼工作目錄 dir chdir 建立目錄 dir mkdir 不指定目錄全名稱...

Spring的靜態工廠和例項工廠建立物件

spring靜態工廠與動態工廠的建立與配置 靜態工廠建立物件 一 通過靜態工廠模式建立物件 package cn.jz.beans public class bean1 package cn.jz.beans public class bean1 factory 二 通過例項工廠模式建立物件 pac...