java - java中的常量变量和方法

标签 java

如果我们将一个变量定义为常量,那么当我们在方法中使用该变量时,是否必须将方法设置为静态?

static final int AGE=35;

private int daysOfLife(){
return AGE*365;
}

我们可以像这样定义方法吗?

尽管它没有给我任何错误,但是从实例方法读取静态数据是一个好习惯吗?

最佳答案

您不应该只担心变量/方法是静态还是非静态,还应该担心其他事情。

我将您的操作分类为 - 读取写入,在这里您尝试读取默认范围> 、 finalINSTANCEprivate 方法中的 static 变量。

静态的概念存在于逻辑上对变量和方法进行分组,因此如果您的方法只有该行并且该方法中不会有其他任何内容,我建议保持该分组一致并使该变量成为一个实例变量(如果变量在所有对象中都是常量,则没有意义)并将其范围更改为 private (如果您不希望变量在同一包类中可用)OR 将该方法标记为静态。

在实例方法中读取finalstatic变量是完全可以的,尽管写入是有问题的(尽管final 无法写入,但以防万一变量不是 final )。

如果该变量不会在其他地方通过类名访问,则最好将该变量设为实例,然后如果它是类级别常量,则将其设为静态并将方法更改为静态(初始化相同的常量字段)每个对象都会不必要地消耗你的内存)。

关于java - java中的常量变量和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398153/

相关文章:

java - Firebase 身份验证错误 Android Studio

java - 移动数组中的元素

java - android 模拟器未启动

java - 如何使用 Junit 创建可共享的测试包?

java - 消除最后一个逗号和空格

Java线程写入文件

java - 自定义 JComponent 边界等于容器尺寸

java - 我怎样才能模拟一个非空值?

java - SSL异常 : Received fatal alert: unexpected_message

java - 如何从 JDBC 检索序列元数据?