例如,類宣告可能使用字面值30來指定陣列的長度,由於該常量對於所有物件來說都是相同的,因此建立乙個由所有物件共享的常量是個好主意,你可能以為以下做法是可行的:
class bakery
但這樣實際上是不行的,因為宣告類只是描述了物件的形式,並沒有建立物件。因此,在建立物件前,沒有用於儲存值的空間。下面介紹兩種方法實現這個目標。
第一種方式是在類宣告中宣告乙個列舉。在類宣告中宣告的列舉的作用域為整個類,因此可以用列舉為整型常量提供作用域為整個類的符號名稱。
class bakery
; double costs[months];
}
注意,這種方式宣告列舉並不會建立類資料成員。也就是說,所有物件中都不包含列舉。另外,months只是乙個符號名稱,在作用域為整個類的**中遇到它時,編譯器將用30來替換它。
由於這裡使用列舉只是為了建立符號常量,並不打算建立列舉型別的變數,因此不需要提供列舉名。
第二種方法:使用關鍵字static
class bakery
這將建立乙個名為months的常量,該常量將於其他靜態變數儲存在一起,而不是儲存在物件中。因此,只有這乙個months常量,被所有bakery共享。 作用域為類的常量
在類內定義的資料成員和成員函式,其作用域為整個類,即只在該類中是可知的,在類外是不可知的。使符號常量的作用域為整個類,常規的變數宣告方法不可行,class bakery double costs months 用這種方式不會建立類資料成員。也就是說,所有物件中都不包含列舉。months只是乙個符號名...
C 學習筆記之作用域為類的常量和作用域內的列舉
一 作用域為類的常量 有些情況下,使符號常量的作用域為類很有用。如,類宣告 不是定義 可能使用字面值30來指定陣列長度,由於該常量對於所有物件來說都是相同的,因此建立乙個由所有物件共享的常量是個不錯的主意,也許我們想像下面這樣做 複製 1 class weather 2 複製 要注意的是,我們這是在...
變數 常量 作用域
變數的注意事項 1.每個變數都有型別,型別可以是基本型別,也可以是引用型別。2.變數名必須是合法的識別符號。3.變數宣告是一條完整的語句,每乙個宣告都必須以分號結束。變數的作用域 類變數 例項變數 區域性變數 例子 public class demo 類變數 static static double...