java中的常量可以不用在声明的时候初始化,c中的必须在声明的时候初始化,可不可以这么理解?

这种理解不完全正确,下面分别说明 Java 和 C 中常量的初始化情况。

Java 中常量的初始化
在 Java 里,使用 final 关键字定义常量时,常量并非都要在声明时初始化,具体情况如下:

类的静态常量
如果 final 修饰的是类的静态常量(即使用 static final 修饰),有两种初始化方式:

声明时初始化:这是最常见的方式,例如:

F:\Java\learning example\src\PointsRewardSystem.java
Apply
public class Constants {
    public static final int MAX_VALUE = 100;
}
静态代码块中初始化:可以在静态代码块里对静态常量进行初始化,示例如下:

F:\Java\learning example\src\PointsRewardSystem.java
Apply
public class Constants {
    public static final int MAX_VALUE;
    static {
        MAX_VALUE = 100;
    }
}
类的实例常量
final 修饰的类实例常量,同样有两种初始化途径:

声明时初始化:

F:\Java\learning example\src\PointsRewardSystem.java
Apply
public class MyClass {
    private final int instanceConstant = 20;
}
构造函数中初始化:可以在类的构造函数里对实例常量进行初始化,示例如下:

F:\Java\learning example\src\PointsRewardSystem.java
Apply
public class MyClass {
    private final int instanceConstant;
    public MyClass(int value) {
        this.instanceConstant = value;
    }
}
局部常量
对于局部常量,在使用之前必须完成初始化,例如:


F:\Java\learning example\src\PointsRewardSystem.java
Apply
public class Main {
    public static void main(String[] args) {
        final int localConstant;
        localConstant = 30;
        System.out.println(localConstant);
    }
}
C 语言中常量的初始化
在 C 语言中,使用 const 关键字定义常量时,一般需要在声明时就完成初始化,例如:


c
Apply
#include <stdio.h>

int main() {
    const int number = 10;
    // const int anotherNumber;  // 错误,未初始化
    // anotherNumber = 20;
    printf("%d\n", number);
    return 0;
}
不过,在 C 语言里,const 更多地表示“只读”,不像 Java 里 final 那样严格的常量语义。

总结
Java 中的常量不一定要在声明时初始化,可根据常量的类型(静态常量、实例常量、局部常量)在不同的位置完成初始化;而 C 语言里使用 const 定义常量时,通常要在声明时就初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值