Java中的常量類和枚舉類是兩種定值類型的實現(xiàn)方式,它們都可以用于聲明一組常量或枚舉值,用于代碼中定義數(shù)據(jù)變量的值,從而減少代碼中對于魔法數(shù)字或ASCII碼的使用,使代碼更加易讀易懂。
常量類是指一組聲明為靜態(tài)的、不可改變的常量變量,它們通常用于定義一些全局性的常量,如數(shù)學(xué)常數(shù)π、無窮大、最大/最小值等等:
public class Constants { public static final double PI = 3.14159265358979323846; public static final double E = 2.7182818284590452354; public static final double INFINITY = Double.POSITIVE_INFINITY; public static final double NEGATIVE_INFINITY = Double.NEGATIVE_INFINITY; //...其他常量定義 }
上面的代碼中,我們定義了一個Constants類,聲明了四個靜態(tài)變量作為常量,并使用了final關(guān)鍵字,表示這些變量不能被修改。這樣一來,我們在代碼中使用這些常量值時,只需要直接調(diào)用該類的靜態(tài)變量即可,比如:
double area = Constants.PI * radius * radius; //計算圓的面積 double age = Constants.INFINITY; //一個人的年齡不能超過無窮大
下面是枚舉類的代碼實現(xiàn):
public enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; //枚舉值定義 }
這里我們定義了一個Weekday枚舉類,其中包含了七個枚舉值作為星期的表示。枚舉值間用逗號隔開,最后一個值后面也是可以加逗號的。使用枚舉類來代替字符串等類型,可以使代碼更為簡潔,便于開發(fā)人員的使用和維護(hù)。
同樣的,我們在代碼中使用枚舉值也十分簡單:
Weekday day = Weekday.MONDAY; //表示星期一 switch (day) { case MONDAY: System.out.println("今天是星期一"); break; case TUESDAY: case WEDNESDAY: case THURSDAY: case FRIDAY: System.out.println("今天是工作日"); break; case SATURDAY: case SUNDAY: System.out.println("今天是周末"); break; }
總之,常量類和枚舉類是Java程序中常用的兩種定義常量的方式,使用它們可以使程序更加易讀易懂,便于維護(hù)和修改。