应用程序不显示输出

时间:2010-09-23 19:02:01

标签: java compilation

  

可能重复:
  Java application doesn't display output

我正在学习Java开发的基础知识,以便我可以进入Android开发。在这个非常简单的应用程序中,我遇到了一些问题。它应该给我一个车速,齿轮,转速等输出。我可以编译应用程序没有问题但是当我去运行它时它不显示输出。问题是什么?这是代码:

package car1;

public class Main {



    public static void main(String[] args) {

            class HondaCivic implements car1 {

                int speed = 0;
                int rpm = 0;
                int gear = 1;

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

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

                void changeRpm(int NewValue) {
                    rpm = NewValue;}

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

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


            class Car1{
                public void main(String[] args) {
                    // Two different Cars
                    HondaCivic car1 = new HondaCivic();
                    HondaCivic car2 = new HondaCivic();
                    // Methods for cars
                    car1.speedUp(30);
                    car1.changeGear(3);
                    car1.changeRpm(3000);
                    car1.applyBrakes(15);
                    car1.printStates();

                    car2.speedUp(30);
                    car2.changeGear(3);
                    car2.changeRpm(2000);
                    car2.applyBrakes(15);
                    car2.speedUp(5);
                    car2.changeGear(1);
                    car2.printStates();
                }

            }
        }
    }
}

4 个答案:

答案 0 :(得分:1)

您的Main.main方法不包含任何实际的可执行代码。它拥有的是嵌入式类定义HondaCivic。看起来你的意图是Car1.main方法中的代码应该在Main.main方法中 - 这看起来就像你真正想要运行的那样。 HondaCivic也没有明显的理由成为嵌入式课程。清理它,你基本上有Falmarri的建议。

答案 1 :(得分:0)

本例中的HondaCivic不应该是一个类,它应该是Car的一个实例或汽车的任何子类。汽车类应该有汽车的品牌,年份,型号等。现在,如果说HondaCivic有不同的行为,你可以添加任何有助于定义它的信息,例如max_speed,或者就像你做过汽车系统的状态一样,例如current_speed,brakes,gear等。

现在,如果你想进一步设计,你可以为汽车的不同部分创建一个类,你就会开始看到它在面向对象的设计中如何很好地适应。

答案 2 :(得分:0)

这是您的课程应该是什么样子

<强> HondaCivic.java


public class HondaCivic  {

                int speed = 0;
                int rpm = 0;
                int gear = 1;

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

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

                void changeRpm(int NewValue) {
                    rpm = NewValue;}

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

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

<强> Main.java


public class Main {

    public static void main(String[] args) {


    car1 = new HondaCivic();
    car2 = new HondaCivic();
    car1.speedUp(30);
    car1.changeGear(3);
    car1.changeRpm(3000);
    car1.applyBrakes(15);
    car1.printStates();

    car2.speedUp(30);
    car2.changeGear(3);
    car2.changeRpm(2000);
    car2.applyBrakes(15);
    car2.speedUp(5);
    car2.changeGear(1);
    car2.printStates();

     }
}

答案 3 :(得分:-1)

你无法编译。

您的HondaCivic类实现了不存在的car1。它可以是Car1,但Car1是一个类,应该扩展。

另外,在main方法中声明了两个类并不是一个好主意。您无法从方法外部访问它们。

最后你有两个main(String...)方法。我想这是被调用的Main.main(String...)。除了声明两个类之外,此方法不执行任何操作。