当我运行这个程序时没有'静态''关键字.it运行正常,但使用''静态''关键字显示错误

时间:2016-01-17 01:52:44

标签: java

class Ideone {      
   static final int iop;//here static variable

    public Ideone()
    {
        iop=56;     
        System.out.println(iop);

    }
    public static void main (String[] args) throws java.lang.Exception
    {
      new Ideone();

    }
}

此处有ERROR消息

Main.java:14: error: cannot assign a value to final variable iop iop=56;

3 个答案:

答案 0 :(得分:1)

静态最终变量应该用作常量而不是在构造函数中初始化。

将其更改为

static final int iop = 56;

答案 1 :(得分:1)

无法在构造函数中初始化

static final个变量。

您有三种选择:

  • 初始化内嵌

    static final int iop = 56;
    
  • 通过静态方法

    进行初始化
    static final int iop = init();
    static int init() { 
        return 56; 
    }
    
  • 通过静态块

    进行初始化
    static final int iop;
    static { 
        iop = 56; 
    }
    

答案 2 :(得分:1)

static - 变量可以在没有实例的情况下使用 - 例如Ideone.iop

final - 无法更改变量的值。

当您将变量声明为static final时,JVM需要初始化变量的值。否则该变量没有用(由于final

而无法更改)

如果你想要它是`static final,请在声明而不是构造函数中初始化它。

static final int iop = 56;