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. * http://www.ibm.com/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.equalsIgnoreCase(ConstantInterface.SATURDAY));
  70. System.out.println(day.equalsIgnoreCase(ConstantEnum.SATURDAY.name()));
  71. System.out.println(day.equalsIgnoreCase(ConstantClassField.SATURDAY));
  72. System.out.println(day.equalsIgnoreCase(ConstantClassFunction
  73. .getSaturday()));
  74. }
  75. }

方法一采用接口(Interface)的中变量默认为static final的特性。

方法二采用了Java 5.0中引入的Enum类型。

方法三采用了在普通类中使用static final修饰变量的方法。

方法四类似方法三,但是通过函数来获取常量。

首先定义全局变量似乎有违Java的面向对象的封装特性,增加的耦合。所以最佳的方法是避免定义全局变量。如果是参数等,可以写入配置文件。如果实在是必须的,方法二是最为推荐的。方法三是大家都能想到的,非常的直观。方法一和方法三本质上一样。方法四提供了灵活性,具体参考引用【1】。

时间: 2024-07-28 12:23:10

Java中定义常量(Constant)的相关文章

如何在Java中定义常量(Constant)

/** * Method One */interface ConstantInterface { String SUNDAY = "SUNDAY"; String MONDAY = "MONDAY"; String TUESDAY = "TUESDAY"; String WEDNESDAY = "WEDNESDAY"; String THURSDAY = "THURSDAY"; String FRIDAY

Java中定义常量方法及建议(Class/Interface)

Class定义常量方法(推荐方法) //final修饰符 public final class Constants { //私有构造方法 private Constants() {} public static final int ConstantA = 100; public static final int ConstantB = 100; ...... } 采用“类.常量名”方法进行调用.需要私有化构造方法,避免创建该类的实例.同时不需让其他类继承该类. 如果多处需要访问工具类中定义的常量

JAVA中定义常量的3种方式

1.最古老的 //未处理 public static final int PROCESS_STATUS_UNTREATED = 0; //已接收 public static final int PROCESS_STATUS_ACCPECTED = 1; //已处理 public static final int PROCESS_STATUS_PROCESSED = 2; 2.改进版的 public static final class PROCESS_STATUS{ //未处理 public s

如何让在JAVA中定义常量池

首先看示例: /** * Method One */ interface ConstantInterface { String SUNDAY = "SUNDAY"; String MONDAY = "MONDAY"; String TUESDAY = "TUESDAY"; String WEDNESDAY = "WEDNESDAY"; String THURSDAY = "THURSDAY"; String

在php中定义常量时,const与define的区别

[问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很多. (1).const用于类成员变量的定义,一经定义,不可修改.define不可用于类成员变量的定义,可用于全局常量. (2).const可在类中使用,define不能. (3).const不能在条件语句中定义常量. 例如: if (...){ const FOO = 'BAR';  // 无效的

PHP中定义常量

PHP中定义常量的方式如下: define(常量名,常量值); //定义常量PUBLISHER define('PUBLISHER', "O'Reilly & Associates"); echo PUBLISHER; 注意,常量名PUBLISHER的分号是可以不用写的 原文地址:https://www.cnblogs.com/chaoguo1234/p/9538996.html

Java中的常量如何避免反模式

在应用中,我们往往需要一个常量文件,用于存储被多个地方引用的共享常量.在设计应用时,我也遇到了类似的情况,很多地方都需要各种各样的常量. 我确定需要一个单独的文件来存储这些静态公共常量.但是我不是特别确定是应该用接口还是类(枚举不满足我的需求).我有两种选择: 使用接口,如: 1 2 3 4 5 package one; public interface Constants { String NAME="name1"; int MAX_VAL=25; } 或 1 2 3 4 5 pac

日常总结の关于Java中的常量池技术

一.相关概念 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. Class文件中的常量池 简单讲解一下class文件的结构,开头的4个字节是class文件魔数,用来标识这是一个class文件,说白话点就是文件头,既:CA FE BA BE. 紧接着4个字节是java的版本号,这里的版本号是34,因为笔者是用jdk8编译的,版本号的高低和jdk版本的高低相对应,高版本可以兼容低版本,但低版本无法执

浅谈JAVA中字符串常量的储存位置

在讲述这些之前我们需要一些预备知识: java中的内存被分成以下部分: 1.栈区:由编译器自动分配释放,具体方法执行结束后,系统自动释放JVM内存资源. 其作用有保存局部变量的值,包括:1.用来保存基本数据类型的值:2.保存类的实例,即堆区对象的引用(指针).也可以用来保存加载方法时的帧. 2.堆区:一般由程序员分配释放,JVM不定时查看这个对象,如果没有引用指向这个对象就回收. 其作用为用来存放动态产生的数据,比如new出来的对象.注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法.