常量是什么:
常量是初始化值后不能再改变的值,可以理解为只能赋值一次的变量
创建常量的三种方式:
1. 在类中使用final修饰
定义:
public class Demo04 {
final int SUCCESS_STATE = 200;
final Double PI = 3.14;
}
使用:
public class Demo05Test {
public static void main(String[] args) {
System.out.println(Demo04.SUCCESS_STATE );
System.out.println(Demo04.PI);
}
}
2. 在接口中定义(注意修饰符,推荐使用)
定义:
public interface Demo05 {
int OK = 200;
String OK_MESSAGE = "成功";
public String UPDATE_MESSAGE = "修改成功";
}
使用:
public class Demo05Test {
public static void main(String[] args) {
System.out.println(Demo05.OK);
System.out.println(Demo05.OK_MESSAGE);
System.out.println(Demo05.UPDATE_MESSAGE);
}
}
3.在枚举中定义
定义:
public enum Demo07 {
OK(200,"成功");
private Integer state;
private String value;
// 重写构造方法
Demo07(Integer state, String value) {
this.state = state;
this.value = value;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
使用:
public class Demo07Test {
public static void main(String[] args) {
System.out.println(Demo07.OK.getState());
System.out.println(Demo07.OK.getValue());
}
}
说明:常量命名一ban使用大写,多个单词中间用_分割
常量的使用场景:
1. 用于提示信息
2. 用于固定参数
3.用于正则验证
示例:
public static final String PWD_REGEX = "(?=.*([a-zA-Z].*))(?=.*[0-9].*)[a-zA-Z0-9-*/+.~!@#$%^&*()]{8,20}$";
public static final String MSG_EXCEEDING_LENGTH = "字段超出长度限制";
public static final String MSG_PARAMETER_ERROR = "参数有误";
public static final String MSG_NOT_EMPTY = "不能为空";
public static final String SMS_UPPER_LIMIT = "已发送上限";
public static final String MSG_FAIL_CODE = "验证码错误";
public static final String MSG_ERROR_MOBILE_NUMBER = "手机号错误";
public static final int ERROR_CODE = 500;
使用常量的好处:
1. 可以让难以记忆的状态使用便于记忆的语法来表示,比如1表示男,2表示女,则可以使用常量MALE,FEMALE表示
2.方便扩展,程序所所有固定的提示信息,都使用常量,便于修改和扩展
3.便于统一和标准化,比如手机验证,都使用同一个正则验证
常量和变量的区别:
常量是只能赋值一次,不可变的量
变量是可以多次赋值
总结:
1.变量可以多次赋值
2.常量只能赋值一次,多用于固定参数,避免魔法值等