2013-04-23 131 views
-1

所以我從Java的教程中複製了MountainBike,RoadBike,TestBikes類(http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)。多態性,遺傳

我再發「Bicycle.java」但如果我試圖讓它通過使主類執行,那麼它甚至不會編譯(噸表達式的非法啓動。)

是無論如何,使這個編譯與所有繼承這個類的屬性的類一起編譯?

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

    public Bicycle(int startCadence, int startSpeed, int startGear) { 
     gear = startGear; 
     cadence = startCadence; 
     speed = startSpeed; 
    } 


    public void setCadence(int newValue) { 
     cadence = newValue; 
    } 

    public void setGear(int newValue) { 
     gear = newValue; 
    } 

    public void applyBrake(int decrement) { 
     speed -= decrement; 
    } 

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

    public void printDescription() { 
    System.out.println("\nBike is " + "in gear " + this.gear 
     + " with a cadence of " + this.cadence + 
     " and travelling at a speed of " + this.speed + ". "); 
    } 
} 
} 
+6

關於,''然後我做了「Bicycle.class」。「' - 你不應該製作Bicycle.class而是Bicycle.java。類文件來自編譯源代碼java文件。 – 2013-04-23 19:12:07

+1

你應該寫'.java'文件,Java編譯器會生成'.class'文件。 – 2013-04-23 19:12:43

+0

你應該發佈這些作爲答案,所以你得到它的功勞:) – 2013-04-23 19:13:41

回答

3

你把方法的方法內,事實上,你有你的封閉所有的自行車類的代碼的主要方法 - 不這樣做。你的主要方法應該是它自己的獨立方法,不應該持有其他方法,應該創建一個Bicycle實例。調用這個實例的方法,就是這個。

public class Bicycle { 
     public int cadence; 
     public int gear; 
     public int speed; 

    public Bicycle(int startCadence, int startSpeed, int startGear) { 
     gear = startGear; 
     cadence = startCadence; 
     speed = startSpeed; 
    } 


    public void setCadence(int newValue) { 
     cadence = newValue; 
    } 

    public void setGear(int newValue) { 
     gear = newValue; 
    } 

    public void applyBrake(int decrement) { 
     speed -= decrement; 
    } 

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

    public void printDescription() { 
    System.out.println("\nBike is " + "in gear " + this.gear 
     + " with a cadence of " + this.cadence + 
     " and travelling at a speed of " + this.speed + ". "); 
    } 

    public static void main(String[] args) { 
     Bicycle bicycle = new Bicycle(20, 10, 2); 
     System.out.println(bicycle); 
     // ... etc 
    } 
} 

下一次,請告訴我們實際代碼是從導致該問題一開始就和你的錯誤消息。這樣你會得到更好的幫助,我們都會少一些挫敗感。

1

接受以前的答案並重新開始,嘗試分解不同的方法並調試每個方法,而不是洗掉錯誤並拋開雙手。確保每個代碼都按照代碼進行編譯,以便您知道問題的起點。