我正在学习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();
}
}
}
}
}
答案 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...)
。除了声明两个类之外,此方法不执行任何操作。