2013-07-09 46 views
0

我寫了一段聲明三個實例變量和兩個實例方法的代碼。但是,當我運行該程序時,我在checkTemperature方法中收到語法錯誤。我檢查了我的語法,用於任何遺漏/過度使用的大括號,分號等,但代碼看起來很好。我不知道爲什麼我收到此錯誤有人可以幫助解決這個問題?以下是我的代碼如下。語法在Java中編譯時的實例方法錯誤

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

    } 

} 
+3

不能定義一個方法中的方法。只需將這些方法移到'main'之外即可。 –

+0

而且它們不是實例變量,它們是局部變量。 – kosa

回答

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); 
    }  
} 
+0

非常感謝您的支持。但是,當我運行代碼編譯使用您編輯的代碼時,不會顯示任何內容。爲什麼是這樣? –