0

我写了一段代码,声明了三个实例变量和两个实例方法。但是,当我运行程序时,我在 checkTemperature 方法中收到语法错误。我检查了我的语法是否有任何缺失/过度使用的大括号、分号等,但代码看起来不错。我不确定为什么我会收到此错误,有人可以帮助解决这个问题吗?下面是我的代码。

public class volcanoRobots {

    /**
    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub


        /*
        * declared instance variables status, speed,temperature
        */
        String status;
        int speed;
        float temperature;

        /*
        * create first instance method checkTemperature
        */
        void checkTemperature(){
            if (temperature > 660){
                status = "returning home";
                speed = 5;
            }
        }

        /*
        * create second instance method showAttributes
        */
        void showAttributes(){
            System.out.println("Status: " + status);
            System.out.println("Speed: " + speed);
            System.out.println("Temperature: " + temperature);
        }

    }

}
4

1 回答 1

2

你不能在另一个方法中拥有一个方法。将该方法移动到类的主体中,您的代码应该可以编译。此外,您的实例变量实际上并不是实例变量。它们是main方法的局部变量。使用适当的可见性修饰符将它们也移动到类的主体中;我建议制作它们private

其他几件事:

  • 也将可见性修饰符添加到您的方法中。同样,在这种情况下,我建议private. 没有任何修饰符,它们是包私有的,这可能不是您想要的。
  • 遵循 Java 命名约定;你的班级应该被命名为VolcanoRobots. 类名使用 PascalCase,而变量和方法名使用 camelCase。

因此,您的课程最终将如下所示:

public class VolcanoRobots {

    /*
    * declared instance variables status, speed,temperature
    */
    private String status;
    private int speed;
    private float temperature;

    /**
    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

    /*
    * create first instance method checkTemperature
    */
    private void checkTemperature(){
        if (temperature > 660){
            status = "returning home";
            speed = 5;
        }
    }

    /*
    * create second instance method showAttributes
    */
    private void showAttributes(){
        System.out.println("Status: " + status);
        System.out.println("Speed: " + speed);
        System.out.println("Temperature: " + temperature);
    }    
}
于 2013-07-09T18:03:37.037 回答