JAVA高新技術 列舉篇

2021-05-27 22:10:10 字數 1626 閱讀 1631

1、為什麼要出現列舉:

在現實生活中,有許多實體有且僅有特定的幾個屬性

(例如:月份只有1~12月,性別只有男女,季節只有四季……等)

若將其型別定義成常量,則不可避免地出現非法引數的問題

(例如:13月,第三個性別,第五個季節……等)

因此,對於上述型別的物件,必須規定其特定的屬性值為列舉型別,即:僅能從已有的幾個值中挑選,不可以自己建立新的屬性值

2、列舉的關鍵概念:

使用者若想要建立某個物件 則

只能從已有的該型別物件裡面

挑選 而

不能自己

自由建立

新的該型別物件

例如:使用者若想要乙個季節型別的物件

則只能從已有的春夏秋冬四個型別的物件裡挑選

而不能建立新的季節型別物件

*列舉類的原始實現:

(1)定義乙個類,裡面包含若干個public static final修飾的,自身型別的變數以供外界使用

(2)構造方法私有(即:不可以由外界建立新的物件)

例如:class season() }

*這樣,外界只要把乙個變數定義成season類

那麼這個變數除了取春夏秋冬中任乙個值外,不能取任何其它值

3、列舉類在jdk5.0中的實現:

enum season()

此語法與上述原始實現的作用完全等同,且同樣是

編譯器語法,即:

編譯器在遇到上述語句的時候,會自動將其轉換成之前原始實現的格式

*因此,列舉在本質上仍然是乙個特殊的類,只不過這個類:

(1)內部包含該類的公開靜態常量物件

(2)構造方法必須是私有的

4、列舉類的父類:enum

常用方法:

values()  //靜態方法,返回該列舉類的陣列,內容為該類中所有的列舉值

5、列舉類作為乙個特殊的類的理解:

列舉除了可以定義該類的公開靜態常量物件之外

還可以定義任何另外的屬性和方法,

只是在新增屬性和方法的時候,需要

在列舉值的最後乙個值後面加上分號

例如:enum season()   //

注意:列舉類的構造方法僅能是private的,即使不用private修飾,也會自動預設為private

public string getname() }

6、列舉類不可以有子類,但是列舉類中的列舉值可以實現列舉類中的抽象方法

例如://定義列舉型別

enum operator },

sub

},

mul

},

div 

};

public abstract double calculate(double a, double b); }

//呼叫該列舉類

operator os = operator.values();

for(operator o:os)

Java高新技術 列舉

說明 當乙個類的物件個數固定,且不需要再建立這個類新的物件時,可以考慮用列舉。一,列舉原理 列舉型別特有 1.私有構造方法 2.每個元素分別用乙個公有的靜態成員變數表示 3.可以有若干個公有方法或抽象方法,抽象方法可以使每個元素 本類物件 通過覆蓋具有自己獨特的內容 注 列舉型別的元素就是本類物件,...

JAVA高新技術 泛型篇

1 泛型的意義 往小處說,是為了實現型別安全的集合 往大處說,是為了實現模版程式設計的理念 2 為什麼要出現泛型 雖然集合具有長度可擴充 插入刪除方便等強大的特性 但是集合內部可以儲存的物件是型別不安全的 釋義 什麼是型別不安全 因為集合內部可以裝入 取出的元素是object型別 因此任何物件都能夠...

高新的技術對不對 有關高新技術

有關高新技術 一 高新技術的含義 高新科學技術,也叫高技術 高科技。年 高技術 一詞被收入美國出版的 韋氏第 三版國際詞典補充 個詞 中,由此作為乙個正式名詞固定下來。一般而言,它的含義 是動態變化的,是不斷發展的乙個概念。從地域上看,不同的國家對高技術有不同的理解。被稱為南韓 經濟起飛 科技發展之...