2015-10-18 64 views
0

我是一個Java新手,我試圖編譯這個,但它不會編譯。有人可以幫忙嗎?它說,無效是表達的非法開始。我從https://docs.oracle.com/javase/tutorial/java/concepts/class.html得到這個。當我刪除主方法及其右括號時,它會編譯。爲什麼是這樣?我如何用這個類中包含的主要方法來寫這個?有人可以解釋爲什麼這個java類不會編譯?

class Bicycle{ 
public static void main(String args[]){ 
    int cadence = 0; 
    int speed = 0; 
    int gear = 1; 

    void changeCadence(int newValue){ 
     cadence = newValue; 
    } 

    void changeGear(int newValue){ 
     gear = newValue; 
    } 

    void speedUp(int increment){ 
     speed = speed + increment; 
    } 

    void applyBrakes(int decrement){ 
     speed = speed - decrement; 
    } 

    void printStates(){ 
     System.out.println("cadence: " + cadence + " speed: " +speed + " gear: " + gear); 

    } 

} 

}

+2

注意:這種學習語法和東西的方式效率不高。每當編譯器咆哮你時,你是否打算提出一個新問題?更好的做法:把事情做得小:寫下幾行代碼(你認爲這些代碼應該是正確的)。然後運行編譯器。仔細閱讀錯誤信息。固定。重複。也許,先研究Java的「結構」屬性;就像在這裏一樣;哪些元素去上課的地方? – GhostCat

回答

2

你把main方法錯了地方。 main方法不應該包含類的方法和成員。

你應該提取的主要方法:

class Bicycle{ 

    int cadence = 0; 
    int speed = 0; 
    int gear = 1; 

    void changeCadence(int newValue){ 
     cadence = newValue; 
    } 

    void changeGear(int newValue){ 
     gear = newValue; 
    } 

    void speedUp(int increment){ 
     speed = speed + increment; 
    } 

    void applyBrakes(int decrement){ 
     speed = speed - decrement; 
    } 

    void printStates(){ 
     System.out.println("cadence: " + cadence + " speed: " +speed + " gear: " + gear); 

    } 

    public static void main(String args[]) 
    { 
     // here you can create an instance of the class and test it 
     Bicycle bike = new Bicycle(); 
     bike.changeCadence(4); 
     bike.changeGear(5); 
     bike.speedUp(3); 
     bike.printStates(); 
    } 

} 
+0

謝謝!我意識到,我在佈置課堂教學方法時不應該堵塞主要方法(對吧?)。 –

0

只需一個大拇指基於規則
在Java類中的方法塊不能在它裏面的另一種方法塊。是的,我們可以在方法塊內創建一個本地內部類,然後它可以包含方法,但不能直接。

+0

哦好吧,所以main是一種方法,所以它不能定義changeGear和applyBreaks以及其中的其他方法?謝謝!出於好奇,你如何做出當地的內部課堂?這聽起來像現在可能對我來說太高級了。 –

+0

爲什麼這些方法在它們前面有「空白」? –

+0

void方法,此方法不會返回任何類型的值(原始對象或類對象)。要詳細瞭解本地類,請訪問[java教程](https://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html)。 – Manoj

相關問題