错误 : constructor in class cannot be applied

标签 java constructor

<分区>

public class WaterHeater{

    public double Kilowatts;
    public double Water;
    public double Joules;
    public double Temp;
    public double Jkg;
    public double Energy;
    public double Time;

  //Constructor method

  public WaterHeater (double Water, double Kilowatts, double Joules, double Temp, double Jkg)  {

    this.Water = Water;
    this.Kilowatts = Kilowatts;
    this.Joules = Joules;
    this.Temp = Temp;
    this.Jkg = Jkg;
  }

    //Accessor for Kilowatts
    public double Kilowatts(){
    return Kilowatts;
    }

    //Accessor for Water
    public double Water(){
    return Water;
    }

    //Method for Energy used
    public double Energy(){
    Energy = Water*Jkg*Temp;
    return Energy;
    }

    //Method for Time to boil
    public double Time(){
    Time = Energy/Kilowatts;
    return Time;
    }
    }

//Test class

 public class Kettle extends WaterHeater{

  public static void main( String args[] ) 
  {

    WaterHeater Kettle = new WaterHeater(1, 2, 3600, 70, 4200); 

    System.out.println("\nWater: " +Kettle.Water + " L" +
    "\nKilowatts: " + Kettle.Kilowatts + " KW"+
    "\nEnergy used: " +Kettle.Energy() + " J" +
    "\nTime to boil: " +Kettle.Time() + " Seconds");


  }

}

错误:类 WaterHeater 中的构造函数 WaterHeater 不能应用于给定类型。 要求:双倍,双倍,双倍,双倍,双倍 发现:没有参数 原因:实际和正式的参数列表长度不同

最佳答案

代码有很多约定错误,但是您尝试运行的代码的问题是这需要添加到 Kettle 类中

public Kettle(double Water, double Kilowatts, double Joules, double Temp, double Jkg) {
    super(Water, Kilowatts, Joules, Temp, Jkg);     
}

其他提示

对属性使用驼峰/小写字母以及私有(private)而不是公共(public)

public double Kilowatts;
public double Water;
public double Joules;
public double Temp;
public double Jkg;
public double Energy;
public double Time;

应该是

private double kilowatts;
private double water;
private double joules;
private double temp;
private double jkg;
private double energy;
private double time;

使用Accessors and Mutators .

public double Kilowatts() {
    return Kilowatts;
}

应该是

public double getKilowatts() {
    return kilowatts;
}
public void setKilowatts(final String kilowatts) {
    this.kilowatts = kilowatts;
}

主类也应该是这样的

public class Kettle extends WaterHeater {

    public Kettle(double water, double kilowatts, double joules, double temp, double jkg) {
        super(water, kilowatts, joules, temp, jkg);     
    }

    public static void main(String args[]) {

        WaterHeater kettle = new WaterHeater(1, 2, 3600, 70, 4200);

        System.out.println("\nWater: " + kettle.getWater() + " L" + "\nKilowatts: " + kettle.getKilowatts() + " KW" + "\nEnergy used: " + kettle.getEnergy() + " J"
            + "\nTime to boil: " + kettle.getTime() + " Seconds");
    }
}

关于错误 : constructor in class cannot be applied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27924226/

相关文章:

java - 用于查看网页的 Intent 过滤器

java - 如何查找给定时间戳是否在 cron 表达式内?

java - ExtJS 文件上传响应?

c++ - 使用构造函数的术语是什么?

c++ - 通过基类自动进行窗口编程

c++ - 什么时候调用构造函数?

Java构造函数: creating an object,短参数被解释为int

.net - TransactionScopeOption - 必需或 RequiresNew

java - 在哪里可以找到从 tomcat :run? 的 JSP 生成的 Servlet

java - Play Framework - 创建没有模型的表单