gpt4 book ai didi

java - 不确定为什么我的实例出现错误

转载 作者:行者123 更新时间:2023-12-02 10:06:26 26 4
gpt4 key购买 nike

我创建了两个类,PassCarMotor 。我的项目要求我创建一个 Motor每个 PassCar 的实例,但我正在努力这样做。当我尝试创建 Motor 的实例时在PassCar ,它不起作用。

我已经尝试过了 Motor motor = new Motor();private Motor motor = new Motor();

下面是我的 PassCar 代码该错误指出构造函数 Motor未定义。

public class PassCar extends Vehicle{

private Motor motor = new Motor();// the error
private int numPass;
private boolean AC;

public PassCar(String make, String model, int year, double price, int numPass, boolean aC, Motor motor) {
super(make, model, year, price);
this.numPass = numPass;
AC = aC;
this.motor = motor;

}


public int getNumPass() {
return numPass;
}

public void setNumPass(int numPass) {
this.numPass = numPass;
}

public boolean isAC() {
return AC;
}

public void setAC(boolean aC) {
AC = aC;
}

public Motor getMotor() {
return motor;
}

public void setMotor(Motor motor) {
this.motor = motor;
}


public void description() {
System.out.print("In this application, a passenger car is an every day vehicle registered to an individual");
}

@Override
public String toString() {
String s = super.toString();
s += "PassCar numPass = " + numPass + ", AC = " + AC + ", motor = " + motor;
return s;
}



}

电机类代码

public class Motor {

private String name;
private int cylinders;
private int bhp;
private double displacement;

public Motor(String name, int cylinders, int bhp, double displacement) {
super();
this.name = name;
this.cylinders = cylinders;
this.bhp = bhp;
this.displacement = displacement;
}





public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getCylinders() {
return cylinders;
}

public void setCylinders(int cylinders) {
this.cylinders = cylinders;
}

public int getBhp() {
return bhp;
}

public void setBhp(int bhp) {
this.bhp = bhp;
}

public double getDisplacement() {
return displacement;
}

public void setDisplacement(double displacement) {
this.displacement = displacement;
}

@Override
public String toString() {
return "Motor name = " + name + ", cylinders = " + cylinders + ", bhp = " + bhp + ", displacement = " + displacement;
}

}

打印输入信息的代码

公共(public)类VehicleTest{

public static void main(String[] args) {

PassCar p1 = new PassCar("Ford", "Mustang", 2016, 44500.0, 5, true, "EcoBoost", 6, 310, 2.3);
System.out.print(p1);
}

}

最佳答案

问题就在这里

public Motor(String name, int cylinders, int bhp, double displacement) {
super();
this.name = name;
this.cylinders = cylinders;
this.bhp = bhp;
this.displacement = displacement;
}

您已经创建了一个带有一些参数的构造函数,但您尝试在此处调用不带参数的构造函数

private Motor motor = new Motor();  //cant find constructor that takes no arguments

要解决此问题,您必须声明一个不带参数的构造函数以及另一个构造函数。

public Motor(){
//code here
}

关于java - 不确定为什么我的实例出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55310084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com