2013-04-23 4 views
-1

Итак, я скопировал класс MountainBike, RoadBike, TestBikes из учебников Java (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-файла исходного кода. –

+1

Вы должны писать файлы '.java', компилятор Java будет генерировать файлы' .class'. –

+0

Вы должны опубликовать их в качестве ответов, чтобы получить кредит на него :) –

ответ

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

Возьмите в предыдущих ответах и ​​начните сначала, попробуйте разбить различные методы и отладить каждый, вместо того, чтобы вымыть ошибки и поднять руки. Убедитесь, что каждый компилируется, когда вы код, чтобы вы знали, где проблемы начинаются.

Смежные вопросы