日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java高新技术 枚举

發布時間:2023/12/10 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java高新技术 枚举 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


?Java高新技術?? 枚舉


知識概要:

??????????????? (1)為什么要有枚舉

??????????????? (2)枚舉的示例

??????????????? (3)枚舉的應用

??????????????? (4)枚舉的高級應用


(1)為什么需要枚舉

????問題:要定義星期幾或性別的變量,該怎么定義?

???????????? ?假設用1-7分別表示星期一到星期日,但有人可能會寫成int weekday = 0;

???????????? ?或即使使用常量方式也無法阻止意外。

???????????? ?枚舉就是要讓某個類型的變量的取值只能為若干個固定值中的一個,??

?????????? ?? 編譯器就會報錯。枚舉可以讓編譯器在編譯時就可以控制源程序中填寫的非法值,

???????? ??? ?普通變量的方式在開發階段,無法實現這一目標。



用普通類如何實現枚舉功能,定義一個Weekday的類來模擬枚舉功能?


?????????? ?私有的構造方法??

?????????? ?每個元素分別用一個公有的靜態成員變量表示?

?????????? ?可以有若干公有方法或抽象方法。

????????? ? 采用抽象方法定義nextDay就將大量的if.else語句轉移成了一個個獨立的類。


package cn.itheima.day1;public abstract class WeekDay1 {private WeekDay1(){};public static final WeekDay1 MON = new WeekDay1(){public WeekDay1 nextDay(){return SUN;}};public static final WeekDay1 SUN = new WeekDay1(){public WeekDay1 nextDay(){return MON;}};public abstract WeekDay1 nextDay();/*public WeekDay nextDay(){if(this==SUN)return MON;elsereturn SUN;}*/public String toString(){return this==SUN?"SUN":"MON";} }
代碼測試: package com.itheima.day01; public class WeekDayTest { public static void main(String[] args) { WeekDay Mon = WeekDay.MON; System.out.println(Mon); } }

public enum WeekDay{SUN,MON,TUE,WED,THU,FRI,SAT;//; 可加可不加上private WeekDay(){System.out.println("first");};private WeekDay(int day){System.out.println("second");}}

枚舉應用交通燈,trafficLamp 私有的構造函數 私有的成員變量 和public方法

public enum TrafficLamp{RED(50){public TrafficLamp TrafficLampnexLamp(){return GREEN;}},GREEN(30){public TrafficLamp TrafficLampnexLamp(){return YELLOW;}},YELLOW(5){public TrafficLamp TrafficLampnexLamp(){return RED;}};public abstract TrafficLamp TrafficLampnexLamp();private int time;private TrafficLamp(int time){this.time = time;}}}

枚舉類總結:

1、枚舉類是一種特殊形式的Java類。 枚舉元素也是類對象

2、枚舉類中聲明的每一個枚舉值代表枚舉類的一個實例對象。

3、枚舉類與Java中的普通類一樣,在聲明枚舉類時,也可以聲明屬性、方法和構造函數。但枚舉類的構造函數 ????? 必須為私有的(這點不難理解)。

4、枚舉類也可以實現接口、或繼承抽象類。

5、JDK 1.5 中擴展了switch語句,它除了可以接收int, byte, char, short,String外,還可以接收一個枚舉類型。

6、若枚舉類只有一個枚舉值,則可以當作單例設計模式使用。

7、枚舉類的實例變量是把所以的枚舉實例都加載一次的。如果調用了某個枚舉類,那么該枚舉類先把枚舉類 里面的所有元素都先加載一次。




轉載于:https://www.cnblogs.com/thankyou/p/4352151.html

總結

以上是生活随笔為你收集整理的Java高新技术 枚举的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。