Java中定義常量(Constant) 的幾種方法
阿新 • • 發佈:2018-12-21
常量使用目的
- 為什麼要將常亮提取出來? 常亮提取出來有利於程式碼閱讀,而且下次再做這種判斷不用手寫或複製,直接通過常量類就能得到,能夠避免有的地方是username,有的地方是name來判斷同一個邏輯含義相同變數問題。不過我覺得提取出來並不會有利於程式碼效能提升,因為常量分配在記憶體的常亮池中,所以記憶體不會出現多個相同常量字串。總的來說提取常量主要是為了避免魔法數字和提高程式碼可讀性。
- 提取出來怎麼定義,定義在interface中,還是class中?有什麼區別? 常亮定義在final的class中,防止被其它類繼承和例項化。定義在interface中性質也是一樣,static final屬性。但是interface看起來就是會被繼承的。
interface中定義常量
採用介面(Interface)的中變數預設為static final的特性。
public interface ConstantInterface {
String SUNDAY = "SUNDAY";
String MONDAY = "MONDAY";
String TUESDAY = "TUESDAY";
String WEDNESDAY = "WEDNESDAY";
String THURSDAY = "THURSDAY";
String FRIDAY = "FRIDAY";
String SATURDAY = "SATURDAY";
}
Enum定義常量
enum ConstantEnum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
普通類中定義常量
採用了在普通類中使用static final修飾變數的方法。
public class ConstantClassField {
public static final String SUNDAY = "SUNDAY";
public static final String MONDAY = "MONDAY";
public static final String TUESDAY = "TUESDAY";
public static final String WEDNESDAY = "WEDNESDAY";
public static final String THURSDAY = "THURSDAY";
public static final String FRIDAY = "FRIDAY";
public static final String SATURDAY = "SATURDAY";
}
也可以使用get方法
public class ConstantClassFunction {
private static final String SUNDAY = "SUNDAY";
private static final String MONDAY = "MONDAY";
private static final String TUESDAY = "TUESDAY";
private static final String WEDNESDAY = "WEDNESDAY";
private static final String THURSDAY = "THURSDAY";
private static final String FRIDAY = "FRIDAY";
private static final String SATURDAY = "SATURDAY";
public static String getSunday() {
return SUNDAY;
}
public static String getMonday() {
return MONDAY;
}
public static String getTuesday() {
return TUESDAY;
}
public static String getWednesday() {
return WEDNESDAY;
}
public static String getThursday() {
return THURSDAY;
}
public static String getFirday() {
return FRIDAY;
}
public static String getSaturday() {
return SATURDAY;
}
}
final class定義常量
public final class ConstantClassField {
public static final String SUNDAY = "SUNDAY";
public static final String MONDAY = "MONDAY";
public static final String TUESDAY = "TUESDAY";
public static final String WEDNESDAY = "WEDNESDAY";
public static final String THURSDAY = "THURSDAY";
public static final String FRIDAY = "FRIDAY";
public static final String SATURDAY = "SATURDAY";
}