首頁>Club>
11
回覆列表
  • 1 # 印刷小劉

    感謝邀請,如果說不知道呢,我也稍微接觸過,但是沒有徹底瞭解過。下面我就簡單說說吧!java,是由Sun公司推出的一種應用程式開發語言,是一用純面向物件的程式設計語言。Java 程式語言的風格十分接近C、C++語言。Java是一個純的面向物件的程式設計語言,它繼承了 C++ 語言面向物件技術的核心,Java捨棄了C ++語言中容易引起錯誤的指標(以引用取代)、運算子過載(operator overloading)、多重繼承(以介面取代)等特性,增加了垃圾回收器功能用於回收不再被引用的物件所佔據的記憶體空間,使得程式設計師不用再為記憶體管理而擔憂。

    列舉就是把集合裡的物件元素 一個一個提取出來!比如, 你買了一袋糖果, 裡面有草莓味的, 有灌酒口味的, 有蘋果口味的,那麼, 你想把他們都分開拿出來 ,就必須用“手”一個一個把他們撿出來, 而一次只能取一個,你的手就是代表列舉器 ,你取的動作就是列舉的過程!

    對於java、C+ +等計算機語言我只是瞭解一些表面的,真正涉及到運用我是沒有發言權的,因為不是太懂,如果有朋友對這方面有興趣的,可以去網上查閱,或者買一些專業的書籍看看!感謝閱讀!

  • 2 # IT痕跡

    Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。

    在實際程式設計中,往往存在著這樣的“資料集”,它們的數值在程式中是穩定的,而且“資料集”中的元素是有限的。

    例如星期一到星期日七個資料元素組成了一週的“資料集”,春夏秋冬四個資料元素組成了四季的“資料集”。

    而這樣的資料集列舉就派上了用場。下面用一個例子來說明使用方法:

    還有什麼不明白的可以問我,例子是基本的用法,需要更深入的可以百度一下。

  • 3 # 凌未風

    1.建立enum的時候,裡面的元素就是類, enum 型別的值是透過執行期構造出物件來表示的。

    2. enum 型別不支援 public 和 protected 修飾符的構造方法,建構函式一定是 private 或 friendly 的,所以列舉物件是無法在程式中透過直接呼叫其構造方法來初始化的。

    3. 定義 enum 型別時候,簡單型別最後一個列舉值後不用跟任何一個符號;但如果有定製方法,最後一個列舉值與後面程式碼要用分號";"隔開。

    3.增加 Enum 類的同時,也增加了兩個工具類 EnumSet 和 EnumMap,EnumSet 是一個針對列舉型別的高效能的 Set 介面實現。EnumMap 也是一個高效能的 Map 介面實現,用來管理使用列舉型別作為 keys 的對映表,內部是透過陣列方式來實現;

  • 4 # 德藝雙馨抬槓藝術家

    列舉很無聊,知道就行了,一萬個程式設計師有9999個從來沒在工程裡用過。

    我寫了十幾年JAVA,我很厭倦,為了達到面向物件,他們可以把工程裡百分之八十的程式碼寫成垃圾,JAVA是個好東西,碰上教條主義也是煩惱得很,不把簡單問題複雜化他們夜不能寐,寫個留言本他們也要分四五個層,用三四種框架,如果你一直用JAVA,你可能習慣了,可是世界上有其它語言,比如Python,node.js,用了以後你覺得自己返璞歸真神清氣爽,軟體就應該這樣寫,而不是先弄幾個層,spring啊hibernate呀都用上,說實話,那些開源框架大部分是點子不錯的劣質產品,JAVA是好東西,也經不起這樣糟蹋。

  • 5 # Java技術架構

    列舉是JDK1.5引入了的新型別,很多人都感覺它是個小功能,實際上它給我們開發帶來了很大的方便,下面我介紹一下常見的列舉用法:

    常量

    在JDK1.5 之前,我們定義常量都是: public static final XXX 。現在有了列舉,就可以把相關的常量分組到一個列舉型別裡,而且列舉提供了比常量更多的方法

    switch

    使用列舉,能讓我們的程式碼可讀性更強

    向列舉中新增新方法

    如果打算自定義自己的方法,那麼必須在enum例項序列的最後新增一個分號。而且 Java 要求必須先定義 enum 例項

    列舉實現單例模式

    Joshua Bloch大神在《Effective Java》中明確表達過的觀點:

    使用列舉實現單例的方法雖然還沒有廣泛採用,但是單元素的列舉型別已經成為實現Singleton的最佳方法。

    如果你真的深入理解了單例的用法以及一些可能存在的坑的話,那麼你也許也能得到相同的結論,那就是:使用列舉實現單例是一種很好的方法。

    “雙重校驗鎖”實現單例:

    列舉實現單例:

    相比之下,你就會發現,列舉實現單例的程式碼會精簡很多。

    上面的雙重鎖校驗的程式碼之所以很臃腫,是因為大部分程式碼都是在保證執行緒安全。為了在保證執行緒安全和鎖粒度之間做權衡,程式碼難免會寫的複雜些。但是,這段程式碼還是有問題的,因為他無法解決反序列化會破壞單例的問題

    想了解詳情的童鞋可以參考我的另一篇文章《為什麼我強烈建議大家使用列舉來實現單例》

    最後希望大家在實際開發時候遵守下圖的規範和標準。

  • 6 # 北大青鳥大連崇德學校

    舉幾個常見的列舉用法:

    用法一:常量

    在列舉中列舉可以把相關的常量分組到一個列舉型別裡,而且列舉提供了比常量更多的方法。

    用法二:switch

     可以在switch迴圈結構裡使用列舉,能讓我們的程式碼可讀性更強。

    用法三:向列舉中新增新方法

     如果打算自定義自己的方法,那麼必須在enum例項序列的最後新增一個分號。而且Java要求必須先定義enum例項。

    用法四:實現介面

    所有的列舉都繼承自java.lang.Enum類。由於Java不支援多繼承,所以列舉物件不能再繼承其他類。

  • 7 # 程式猿W

    認識列舉

    列舉就是要讓某個型別的變數的取值只能為若干個固定值中的一個,否則編譯器就會報錯,列舉可以讓編譯器在編譯時就可以控制源程式賦給的非法值,使用普通變數的方式在開發階段無法實現這一目標.

    在JDK1.5之後,使用關鍵字enum定義一種新的型別,稱為列舉型別。

    JDK 1.5 中可以在 switch 表示式中使用Enum定義的列舉類的物件作為表示式, case 子句可以直接使用列舉值的名字, 無需新增列舉類作為限定

    列舉的定義

    列舉的類名建議帶上Enum字尾,列舉成員需要全大寫,單詞間用下劃線隔開。

    列舉其實是特殊的常量類,且構造方法被預設的強制私有。

    正確的命名方式為:

    ResultEnum的成員名稱為: SUCCESS / UNKNOWN_REASON。

    定義規則如下:

    私有化類的構造器。

    成員變數如果宣告為final。要在構造器中初始化,不允許被修改、

    透過公共方法 呼叫屬性。

    列舉例項必須在前面

    需要在列舉例項後面加上分號,然後再寫建構函式等。

    列舉類預設提供了values()方法,該方法可以很方便得遍歷所有的列舉值

    列舉類物件可以有屬性

    若列舉類顯式的定義了帶引數的構造器, 則在列出列舉值時也必須對應的傳入引數

    Enum類 與 enum關鍵字

    使用enum 關鍵字定義的列舉類,實際上就想當於定義了一個類,此類繼承了Enum類而已

    集合對列舉的支援

    集合對列舉的支援,對於Set和Map介面而言又增加了兩個新的子類: EnumSet 、EnumMap兩個類:

    enum 類基本用法

    我們可以定義一個顏色的列舉:

    怎麼呼叫呢,Java switch語句引數就支援enum類

    帶構造方法的列舉

    定義規則:

    私有化類的構造器

    列舉例項必須在前面

    需要在列舉例項後面加上分號,然後再寫建構函式等

    讓列舉實現介面

    列舉類可以實現一個或多個介面。與普通類實現介面完全一樣,列舉類實現介面時,需要實現該介面所包含的方法。

    如果需要每個列舉值在呼叫同一個方法時呈現不同的行為,則可以讓每個列舉值在{...}匿名塊中實現自己的業務邏輯

    在列舉中定義抽象方法

    enum類是很特殊的一個類,實際上它是一個抽象類。列舉中可以用抽象方法,但是列舉中的每一個物件都分別實現抽象方法;

    列舉實現單例類

    1、藉助JDK1.5新增的列舉來實現單例模式。不僅能夠避免多執行緒同步問題,而且還能防止反序列化重新建立新的物件.

    2、這種方式是Effective Java 作者 Josh Bloch 提倡的方式

    enum類和常量的區別

    這種方式在使用上跟列舉沒有卻別,但是我們為什麼選擇列舉呢?

    (1) 、型別不安全: 因為上面的每個顏色實際上時一個int 整數,因此完全可以把一個顏色當成一個int整數使用,例如進行加法運算RED+ GREEN,這樣程式碼完全正常

    (2) 、 沒有名稱空間: 當需要使用顏色時,必須在前面加上COLOR_字首,否則程式可能與其他類中的靜態常量混淆

    。(3) 、 列印輸出的意義不明確:當輸出某個季節時,例如輸出COLOR_RED,實際 上輸出的是1,這個1很難猜測它代表了紅色.

    (4) 不容易擴充套件,每一個key對應一個值,

    列舉類與普通類區別

    使用 enum 定義的列舉類預設繼承了 java.lang.Enum 類

    列舉類的構造器只能使用 private 訪問控制符列舉類的所有例項必須在列舉類中顯式列出(, 分隔 ; 結尾). 列出的例項系統會自動新增 public static final 修飾

    Enum列舉類主要方法

    values()方法:返回列舉型別的物件陣列。該方法可以很方便地遍歷所有的列舉值。

    valueOf(String str):可以把一個字串轉為對應的列舉類物件。要求字串必須是列舉類物件的“名字”。如不是,會有執行時異常。
  • 中秋節和大豐收的關聯?
  • 大貨車故意碾壓或者故意剎不住車算普通車禍還是刑事責任?