Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序没有';t显示输出_Java_Compilation - Fatal编程技术网

Java 应用程序没有';t显示输出

Java 应用程序没有';t显示输出,java,compilation,Java,Compilation,可能重复: 我正在学习Java开发的基础知识,以便进入Android开发。在这个非常简单的应用程序中,我遇到了一些问题。它应该给我一个汽车速度、档位、转速等的输出。我可以毫无问题地编译应用程序,但当我运行它时,它不会显示输出。有什么问题吗?代码如下: package car1; public class Main { public static void main(String[] args) { class HondaCivic implements

可能重复:

我正在学习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();
                }

            }
        }
    }
}
你不能编译

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

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


最后有两个
main(String…
方法。我想调用的是
Main.Main(String…
)。这个方法除了声明两个类之外什么都不做。

HondaCivic在这种情况下不应该是一个类,它应该是一个Car实例或Car的任何子类。汽车类别应包括汽车的品牌、年份、型号等。现在,如果洪达契维奇有不同的行为,你可以添加任何有助于定义它的信息,例如最大速度,或者像你做的那样,汽车系统的状态,比如当前速度、刹车、档位等


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

这就是你的类应该是什么样子

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

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

     }
}
Main.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);
                }
            }

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

     }
}

Main.Main方法不包含任何实际的可执行代码。它只有一个嵌入式类定义,HondaCivic。看起来您的意图是Car1.main方法中的代码应该是main.main方法中的代码——这看起来像您真正想要运行的代码。HondaCivic也没有明显的理由成为嵌入式类。清理一下,你就基本上得到了Falmari的建议。

重复帖子。编辑其他帖子,而不是在同一网站上发布新主题。-删除了android标签,因为它与此问题无关。您认为它应该扩展是什么意思?我在另一个java文件中有Car1接口。我可以编译,它说构建成功。我的坏消息是,我以为
main()
中的
car1
类就是您引用的接口。但是仍然要阅读关于调用的
main()
的最后一部分。如果我没有两个main()实例,由于某种原因,文件将无法编译,并且到处都有错误。如何让它显示输出?从main()方法中获取类。并将第二个主要方法的内容输入第一个方法。然后用
javacar1.Main
启动您的应用程序。谢谢,但我并不想创建一个庞大的应用程序。我只是想了解一些基本情况,由于某些原因,这个应用程序不会显示printStates()的输出。有什么想法吗?代码都很好,我只是无法在输出中得到数字。@Arcadia我同意Falmari,请不要认为我们太挑剔了,但这是一个互相学习的好地方。简单也意味着让它易于理解,并注重使用正确的方法。如果你考虑到这一点进行开发,那么当应用程序非常大时,你也会做出更好的决策。我使用了本教程中几乎完全相同的代码:在本教程结束时,它告诉我根据这一课制作自己的应用程序。这几乎和他们发布的代码一模一样。即使我获取他们的代码并尝试运行它,输出也不会出现,但在课程中,他们声称会出现。我应该如何实现我的代码?它不应该在主课上吗?我把它做好了,谢谢你们的帮助。我真是个疯子。我花了一个多小时在这么简单的lol上。我只是没有完全理解事情应该如何布局和格式化。你的代码运行正常,但我当然必须添加包。由于某些原因,不需要类前公共。如果类在同一个包中,则不需要公共。默认修饰符是
protected
,这意味着可以从包中的任何类访问它。变量也是如此。你应该找到一个很好的java基础教程,因为你显然错过了很多基础知识。事实上,我两天前才开始学习javaP我正在阅读Java网站上的Java教程。我几乎没有触及表面。随着我的不断进步,我相信我将能够更好地掌握这些概念。java站点上的教程可能是面向那些试图学习java的现有程序员的。实际上,这些教程是为那些不知道java到底是什么的人设计的:它们从一开始就好像读者不知道java是什么一样。显然,这与《Java教程》一书中的内容相同。希望在我完成所有这些课程后,我有足够的时间继续Android开发。