-128~127 之間的整數,裝在一個記憶體區域。 超過這個範圍的整數,裝在不同的記憶體區域。
Integer i1=12; System.out.println(i1 + 5);//17 如果很多很小的對象,他們有很多相同的東西,那就可以把它們變成一個東西;還有不一樣的東西就變成外部屬性,作為方法的參數傳入。
要定義星期幾或者性别的變量,該怎麼定義? 假設用1-7分别表示星期一到星期天,但有人有可能會寫成 int weekDay=0; 枚舉就是要讓某個類型的變量的取值隻能為若幹個固定的值中的一個,否則,編譯器就會報錯。 枚舉可以讓編譯器在編譯時就可以控制源程式中填寫的非法值,普通變量的方式在開發階段無法實作這一目标。
私有的構造方法
每個元素分别用一個共有的靜态成員表示 static final
可以有若幹共有方法或抽象方法,例如,要提供nextDay方法必須是抽象的。
采用抽象方法定義nextDay就是将大量的if,else語句轉換成一個一個獨立的類。
//模拟枚舉
//枚舉
//測試
second first first first first first first
枚舉就相當于一個類,其中也可以定義構造方法、成員變量、普通方法和抽象方法。
枚舉元素必須位于枚舉體中的最開始部分,枚舉元素清單的後要用;與其他成員分隔。
如果把枚舉中的成員方法或變量等放在枚舉元素的前面,編譯器報錯。
構造方法的枚舉
構造方法必須定義為私有的。 如果有多個構造方法,該如何選擇哪個構造方法? 枚舉元素MON和MON()的效果一樣,都是調用預設的構造方法。
帶方法的枚舉
定義枚舉TrafficLamp 實作普通的next方法 實作抽象的next方法:每個元素分别是由枚舉類的之類來生成的執行個體對象,這些子類采用類似内部類的方法進行定義。 增加上表示時間的構造方法
枚舉隻有一個成員時,就可以作為一種單例的實作方式。
構造方法不用自己寫了,預設的是私有的不帶參數的。
newInstance也不用自己寫了,枚舉初始化時自己就建立了。
開始做,堅持做,重複做