如何在Java中使用main里面的静态变量

时间:2016-02-01 03:18:49

标签: java

原谅我,我是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");
    }


    }
}

1 个答案:

答案 0 :(得分:0)

在您的班级中,您有一个非静态的成员变量x。当您在静态的主类中使用它时,抛出异常。

第一种方式:

所以您需要做的是将x的修饰符更改为静态,如下所示:

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");
}

请务必将YOUR_CLASS_NAME更改为您的班级名称(duh)。