2010-09-23 85 views
0

这里是我更新的代码:Java应用程序不显示输出

package car1; 

公共类主要{

公共静态无效的主要(字串[] args){

类本田思域实现CAR 1 {

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

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

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

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

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

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

}

class CarDemo{ 
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(); 
} 

} } }

应用程序将不显示该输出。我不知道该怎么做。有什么建议?

回答

3

与大多数编程语言一样,Java区分大小写。 Classclass不一样。

+0

我补充说,仍然有两个错误:解析时达到文件结束}和编译失败;详细信息请参阅编译器错误输出。 BUILD FAILED(总时间:0秒) – Arcadia 2010-09-23 17:00:41

+0

看起来像'CarDemo'类末尾的'}'字符。这就是为什么你应该采用一致的缩进样式,而不是上面使用的偶然缩进样式。如果你正确地缩进了'main',那么这个类就显而易见了。 – 2010-09-23 17:04:31

+0

我的代码已更新 – Arcadia 2010-09-23 17:32:05

0

我能发现几个问题,其中一些你可能已经固定的:

  1. Class需求是class(小写)在第二类的定义。
  2. Car不是一个接口,所以你必须extend它而不是实现它。
  3. HondaCivic不是抽象的或接口,所以它必须有它的每个方法的方法体;或者,将方法留在HondaCivic之外,在这种情况下,将使用Car的方法。

在当前类的布局,它将使更多的意义,如果作出了本田思域的对象,而不是一类,因为它没有新的功能:

Car hondaCivic = new Car(); 
1

Java是区分大小写的:

Class HondaCivic implements Car { 

是不一样的法律语法:

class HondaCivic implements Car { 
+0

修复并仍然有两个错误:解析时到达文件结束}和编译失败;详细信息请参阅编译器错误输出。 BUILD FAILED(总时间:0秒) – Arcadia 2010-09-23 16:58:04

1

一个接口需要从其父实现所有的方法。您正在实施除

printStates() 

此外,请检查您的类声明的大小写敏感性。

编辑:nvm其未声明为摘要

+0

我补充说,仍然有两个错误:到达文件结尾时解析 }和编译失败;详细信息请参阅编译器错误输出。 BUILD FAILED(总时间:0秒) – Arcadia 2010-09-23 16:56:53

+0

你可以发布你的更新代码吗? – Scott 2010-09-23 16:58:33

+0

是的,代码更新与新错误即时 – Arcadia 2010-09-23 17:32:28

0

您的代码有很多问题。

首先让汽车像interface Car

二把所有的代码从HondaCivicCar和所有的代码CarHondaCivic即一个接口,交换代码,因为接口只能有方法的声明和变量,而不是落实。实现接口的类需要提供所有这些方法的实现。

最后在main方法写的,而不是你有什么制作

Car car1 = new HondaCivic(); 
Car car2 = new HondaCivic(); 

然后,它会编译和运行车的情况下,这种代码。

+0

我编辑我的第一篇文章。我试图做你说的话,但我无法真正理解它。我的代码不需要HondaCivic来运行,我只是把它放在那里,因为我认为我必须在界面或其他东西中实现它。 – Arcadia 2010-09-23 18:18:27

+1

一个类应该有它所有方法的方法体。如果你没有方法体,那么你将不得不声明这个方法是抽象的,因此也声明这个类也是抽象的。你也不能创建抽象类的对象。所以如果你所要做的只是创建一个类并创建它的对象并调用它的某些方法,那么你就不必声明任何接口。只要创建一个类,确保所有的方法都有它们的主体,然后你的代码就可以正常工作。 – 2010-09-23 18:28:02

+0

好吧,我终于得到了编译的代码,没有错误。其中一个主要问题是在方法之前没有增加公开。我忘了你不能编译不公开的接口方法。但是,当我去运行该应用程序它说:java.lang.NoClassDefFoundError:car/Main导致:java.lang.ClassNotFoundException:car.Main无法找到主类:car.Main。程序将会退出。 线程“main”中的异常Java结果:1 BUILD SUCCESSFUL(总时间:0秒)为什么这么说? – Arcadia 2010-09-23 18:32:08