java - 有人能解释一下为什么这个java类不能编译吗?

标签 java

我是一个java新手,我试图编译它,但它无法编译。有人可以帮忙吗?它说 void 是表达式的非法开头。我从 https://docs.oracle.com/javase/tutorial/java/concepts/class.html 得到这个。当我删除 main 方法及其右括号时,它会进行编译。为什么是这样?我怎样才能用类中包含的 main 方法来编写这个?

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

    }

}

}

最佳答案

您将 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();
    }

}

关于java - 有人能解释一下为什么这个java类不能编译吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33197018/

相关文章:

java - Android 上的 ParseImageView 不显示图像

java - 为什么 repaint() 会导致与调整窗口大小不同的结果? ( java )

java - Android - 获取从文件资源管理器中选择的.txt文件的真实路径

java - 我如何在 Jboss AS 7 上查看来自 DLQ 的消息?

java - 导入和运行 Google Cardboard 示例项目时遇到问题

java - 如何在有限制的情况下使用 getInt()(托管配置)?

java - 为什么 Mule flow default-exception-strategy 没有效果?

java - 如何在 XPages 中控制绑定(bind)到作用域变量的数值类型

java - 如果未对金额应用任何操作,BigDecimal.doubleValue() 的准确性如何

java - 无法检索作业,因为未找到所需的类,即使之前的触发器已成功触发