首页 > 解决方案 > 为什么这个常量声明在 Java 中不起作用?

问题描述

我是Java的初学者,在将常量声明为公共时遇到问题,在一些书中搜索了一段时间后,我创建了这个非常简单的程序:

package course1;

public class Circle 
{
    public static void main(String[] args) 
    {       
        public static final double QUARTER_VALUE = 0.25;
        System.out.println(QUARTER_VALUE);
    }
}

我收到以下错误消息:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Illegal modifier for parameter QUARTER_VALUE; only final is permitted

    at course1.Circle.main(Circle.java:7)

问题出在这一行:

public static final double QUARTER_VALUE = 0.25;

当我悬停这一行时,我收到了以下消息:

illegal modifier for parameter QUARTER_VALUE; only final is permitted  

我不明白为什么,按照我的书这应该可行。

标签: java

解决方案


方法变量的作用域只是那个方法,所以你不需要显式地指定作用域。直接在方法中声明的变量是局部变量。不能将局部变量声明为公共变量。事实上,你可以在局部变量声明中使用的唯一修饰符是 final

变量情况下的访问修饰符仅适用于类成员,不适用于方法(局部)变量。


推荐阅读