如何在Java中使用main内部的静态变量

如何在Java中使用main内部的静态变量,java,Java,请原谅,我是Java的初学者。在一项任务中,我必须创建一个程序,使用for循环打印一个从32到98的温度表,并将其转换为摄氏度和开尔文。我不断得到错误“非静态变量x不能从静态上下文引用”。问题是,我将x固定为DecimalFormat作为x.format,并尝试将其应用于小数点后两位的转换。它将x识别为变量,而不是函数名。这是我的密码: public static void main(String args[]){ int i; for(i = 32; i <= 98;

请原谅,我是Java的初学者。在一项任务中,我必须创建一个程序,使用for循环打印一个从32到98的温度表,并将其转换为摄氏度和开尔文。我不断得到错误“非静态变量x不能从静态上下文引用”。问题是,我将x固定为DecimalFormat作为x.format,并尝试将其应用于小数点后两位的转换。它将x识别为变量,而不是函数名。这是我的密码:

public static void main(String args[]){

    int i;

    for(i = 32; i <= 98; i++){

        System.out.println((i)+"F"+(x.format(i-32)*(5/9))+"C"+(x.format(i-32)*(5/9)+273.15))+"K");
    }


    }
}
publicstaticvoidmain(字符串参数[]){
int i;

对于类中的(i=32;i,您有一个非静态的成员变量
x
。当您在静态的主类中使用它时,会引发异常

第一种方式:

因此,您需要做的是将
x
的修饰符更改为static,如下所示:

static x; // with your modifiers
然后你可以在你的主要方法中使用它而不会有麻烦

第二种方式:

如果这是一个比较大的项目(或媒体),您可能需要考虑使用另一个函数并从主循环调用该函数,以避免必须处理所有这些静态的东西。

public static void main(String[] args){
    YOUR_CLASS_NAME c = new YOUR_CLASS_NAME();
    c.startLogic();
}
public void startLogic(){
    System.out.println((i)+"F"+(x.format(i-32)*(5/9))+"C"+(x.format(i-32)*(5/9)+273.15))+"K");
}

请记住将
您的\u CLASS\u NAME
更改为您的类名(duh)。

@AaronMarcus请接受答案,因为谢谢:-)您没有在任何地方定义变量
x
。也没有静态变量。