java靜態(tài)變量什么時候初始化 為什么類的靜態(tài)成員變量要在類外初始化?
為什么類的靜態(tài)成員變量要在類外初始化?當類的數(shù)據(jù)成員聲明為靜態(tài)時,靜態(tài)數(shù)據(jù)成員只能定義一次并由同一類的所有對象共享。每個對象都有類中每個普通數(shù)據(jù)成員的一個副本,但靜態(tài)數(shù)據(jù)成員只存在一個實例,而不管定義
為什么類的靜態(tài)成員變量要在類外初始化?
當類的數(shù)據(jù)成員聲明為靜態(tài)時,靜態(tài)數(shù)據(jù)成員只能定義一次并由同一類的所有對象共享。每個對象都有類中每個普通數(shù)據(jù)成員的一個副本,但靜態(tài)數(shù)據(jù)成員只存在一個實例,而不管定義了多少個類對象。靜態(tài)數(shù)據(jù)成員的目的之一是統(tǒng)計實際存在的對象數(shù)。靜態(tài)數(shù)據(jù)成員不能在類中初始化。實際上,類定義只用于描述對象的藍圖,其中不允許指定初始值。無法在函數(shù)中初始化靜態(tài)數(shù)據(jù)成員,因為靜態(tài)數(shù)據(jù)成員由類的所有對象共享,因此每次創(chuàng)建類的對象時,都會重新初始化靜態(tài)數(shù)據(jù)成員。
類得靜態(tài)成員如何初始化?
通常,靜態(tài)數(shù)據(jù)成員在類聲明中聲明,并在包含類方法的文件中初始化。初始化時,作用域運算符用于指示靜態(tài)成員所屬的類。但是,如果靜態(tài)成員是整數(shù)或枚舉常量,則可以在類聲明中對其進行初始化。