本文目录导读:

在Java中,常量是指在程序运行过程中值不能被改变的变量,Java中通常使用final关键字来声明常量。
以下是常量声明和使用的完整案例:
基本语法
final 数据类型 常量名 = 初始值;
命名规范:常量名通常使用全大写字母,单词之间用下划线分隔。
不同位置的常量声明
局部常量(方法内部)
public class ConstantDemo {
public void testLocalConstant() {
// 方法内部的常量
final double PI = 3.14159;
final int MAX_COUNT = 100;
System.out.println("PI = " + PI);
System.out.println("MAX_COUNT = " + MAX_COUNT);
// PI = 3.14; // 编译错误!常量不能被重新赋值
}
}
成员常量(实例变量)
public class Circle {
// 实例常量:每个对象都有自己的常量,但一旦创建就不能修改
public final double PI = 3.14159;
public final int SIDES;
// 构造方法中初始化空白final变量
public Circle(int sides) {
this.SIDES = sides; // 可以在构造方法中赋值一次
}
}
静态常量(类级别,最常用)
public class MathConstants {
// 静态常量:类的所有对象共享,使用static final
public static final double PI = 3.1415926535;
public static final int MAX_VALUE = 1000;
public static final String APP_NAME = "MyApplication";
// 复杂类型的常量
public static final int[] DAYS = {1, 2, 3, 4, 5};
}
完整案例:计算圆形面积
public class CircleCalculator {
// 1. 声明类常量
public static final double PI = 3.1415926535;
private static final String UNIT = "平方厘米";
// 2. 实例常量
private final double radius;
// 构造方法初始化radius
public CircleCalculator(double radius) {
this.radius = radius;
}
// 计算面积
public double calculateArea() {
return PI * radius * radius;
}
public void displayResult() {
double area = calculateArea();
System.out.println("半径为 " + radius + " 的圆面积为: "
+ area + " " + UNIT);
}
// 测试
public static void main(String[] args) {
// 使用类常量
System.out.println("PI值: " + PI);
// 创建对象
CircleCalculator circle1 = new CircleCalculator(5.0);
circle1.displayResult();
CircleCalculator circle2 = new CircleCalculator(10.0);
circle2.displayResult();
// PI = 3.14; // 编译错误!不能修改常量
}
}
常量与枚举结合使用
// 使用枚举定义常量组
enum Color {
RED("#FF0000"),
GREEN("#00FF00"),
BLUE("#0000FF");
private final String hexCode;
Color(String hexCode) {
this.hexCode = hexCode;
}
public String getHexCode() {
return hexCode;
}
}
public class ColorExample {
public static final String DEFAULT_COLOR = "#FFFFFF";
public static void main(String[] args) {
System.out.println("默认颜色: " + DEFAULT_COLOR);
System.out.println("红色: " + Color.RED.getHexCode());
System.out.println("绿色: " + Color.GREEN.getHexCode());
}
}
常见常量类型示例
public class ConstantTypes {
// 整数常量
public static final int MAX_USERS = 1000;
public static final byte MIN_AGE = 0;
// 浮点数常量
public static final float TAX_RATE = 0.13f;
public static final double PI = 3.1415926;
// 字符常量
public static final char NEW_LINE = '\n';
public static final char SPACE = ' ';
// 布尔常量
public static final boolean DEBUG = true;
// 字符串常量
public static final String GREETING = "Hello, World!";
public static final String EMPTY_STRING = "";
// 对象常量(引用不可变,但对象内容可变)
public static final StringBuffer LOG = new StringBuffer();
}
使用常量的最佳实践
- 命名:全大写,下划线分隔
- 位置:通常放在类的最前面
- 访问修饰符:通常使用
public,除非有特殊封装需求 - 组合修饰符:
public static final是最常见的组合
// 好的实践
public class Constants {
// 成组定义相关常量
public static final int STATUS_SUCCESS = 200;
public static final int STATUS_NOT_FOUND = 404;
public static final int STATUS_ERROR = 500;
// 接口常量(推荐使用类常量)
public interface Status {
int SUCCESS = 200;
int NOT_FOUND = 404;
}
}
- 使用
final关键字声明常量 - 类级别常量通常使用
public static final - 常量命名使用大写+下划线
- 常量一旦赋值就不能修改
- 在编译器和代码可读性方面都有好处
这样可以提高代码的可维护性,避免魔数(magic numbers)的出现。
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播