2013-04-23 43 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

接受以前的答案并重新开始,尝试分解不同的方法并调试每个方法,而不是洗掉错误并抛开双手。确保每个代码都按照代码进行编译,以便您知道问题的起点。