Java中定义常量(Constant)
1. /**
2. * Method One
3. */
4. interface ConstantInterface {
5. String SUNDAY = "SUNDAY";
6. String MONDAY = "MONDAY";
7. String TUESDAY = "TUESDAY";
8. String WEDNESDAY = "WEDNESDAY";
9. String THURSDAY = "THURSDAY";
10. String FRIDAY = "FRIDAY";
11. String SATURDAY = "SATURDAY";
12. }
13. /**
14. * Method Two
15. */
16. enum ConstantEnum {
17. SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
18. }
19. /**
20. * Method Three
21. */
22. class ConstantClassField {交相辉映的意思
23. public static final String SUNDAY = "SUNDAY";
24. public static final String MONDAY = "MONDAY";
25. public static final String TUESDAY = "TUESDAY";
26. public static final String WEDNESDAY = "WEDNESDAY";
27. public static final String THURSDAY = "THURSDAY";
28. public static final String FRIDAY = "FRIDAY";
29. public static final String SATURDAY = "SATURDAY";
30. }
31. /**
梦见坐牢
愿甘32. * Method Four
33. * /developerworks/cn/java/l-java-interface/index.html
34. */
35. class ConstantClassFunction {
36. private static final String SUNDAY = "SUNDAY";
37. private static final String MONDAY = "MONDAY";
38. private static final String TUESDAY = "TUESDAY";
39. private static final String WEDNESDAY = "WEDNESDAY";
40. private static final String THURSDAY = "THURSDAY";
41. private static final String FRIDAY = "FRIDAY";
42. private static final String SATURDAY = "SATURDAY";
43. public static String getSunday() {
44. return SUNDAY;
45. }生命总是美丽的
经典英文歌词
46. public static String getMonday() {
47. return MONDAY;
48. }
49. public static String getTuesday() {
50. return TUESDAY;
51. }
52. public static String getWednesday() {
53. return WEDNESDAY;
54. }
清凉世界
55. public static String getThursday() {
56. return THURSDAY;
57. }
58. public static String getFirday() {
59. return FRIDAY;
60. }
61. public static String getSaturday() {
62. return SATURDAY;
63. }
64. }
65. public class TestConstant {
醋五味子66. static final String day = "saturday";
67. public static void main(String[] args) {
68. System.out.println("Is today Saturday?");
69. System.out.println(day.equalsIgnoreCa(ConstantInterface.SATURDAY));
眼世界70. System.out.println(day.equalsIgnoreCa(ConstantEnum.SATURDAY.name()));
71. System.out.println(day.equalsIgnoreCa(ConstantClassField.SATURDAY));
72. System.out.println(day.equalsIgnoreCa(ConstantClassFunction
73. .getSaturday()));
74. }
75. }
⽅法⼀采⽤接⼝(Interface)的中变量默认为static final的特性。
⽅法⼆采⽤了Java 5.0中引⼊的Enum类型。
⽅法三采⽤了在普通类中使⽤static final修饰变量的⽅法。
⽅法四类似⽅法三,但是通过函数来获取常量。
⾸先定义全局变量似乎有违Java的⾯向对象的封装特性,增加的耦合。所以最佳的⽅法是避免定义全局变量。如果是参数等,可以写⼊配置⽂件。如果实在是必须的,⽅法⼆是最为推荐的。⽅法三是⼤家都能想到的,⾮常的直观。⽅法⼀和⽅法三本质上⼀样。⽅法四提供了灵活性,具体参考引⽤【1】。