Java 当我在没有'';静态'';关键字。它运行良好,但带有''';静态'';关键字它显示错误

Java 当我在没有'';静态'';关键字。它运行良好,但带有''';静态'';关键字它显示错误,java,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

这里是错误消息

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();

    }
}

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

换成

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

静态最终
变量无法在构造函数中初始化

您可以选择以下三种方式:

  • 初始化内联

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

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

    static final int iop = 56;
    
    static final int iop = 56;
    
    static final int iop = init();
    static int init() { 
        return 56; 
    }
    

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

final
-无法更改变量的值

当您将变量声明为
static final
时,JVM希望初始化变量的值。否则该变量将无效(由于
最终版本
,无法更改该变量)

如果希望它是“static final”,请在声明中初始化它,而不是在构造函数中初始化它


static final int iop=56

您必须向我们显示您收到的错误消息,并将其放入您的问题中。显示您为解决此问题所做的尝试。此处错误消息Main.java:14:ERROR:cannot assign value to final variable iop iop=56;不,不。把它放在你的问题里。