【问题标题】:creating methods in an abstract class在抽象类中创建方法
【发布时间】:2017-12-11 16:06:24
【问题描述】:

所以我这里有一个Java 中的抽象类。我需要为 setupCostBase 和monthlyCostBase 创建setter 和getter 函数,以便它们可以从项目中的其他子类中获取值。但是,每当我尝试制作 setter 时,我总是会收到错误消息“ expected”。

不太清楚如何解决这个问题。

abstract public class Carrier {

    private String name = "Unknown Carrier";
    private double setupCostBase = 0.00;
    private double monthlyCostBase = 0.00;

    public Carrier(String name){
        this.name = name;
    }

    @Override
    public String toString(){
        return name;
    }

    private void setSetupCost(setupCostBase){
        this.setupCostBase = setupCostBase;
    }
}

【问题讨论】:

  • 这对你的问题来说是一个非常糟糕的标题。标题暗示它是关于方法的,但实际上你只是有一个简单的语法错误。

标签: java class methods abstract


【解决方案1】:

"<identifier> expected" 是一种通用错误,表明您的语法不正确。

在这种情况下,您还没有在此方法中声明参数setupCostBase的类型:

private void setSetupCost(setupCostBase){

应该是双精度:

private void setSetupCost(double setupCostBase){

【讨论】:

    【解决方案2】:

    这是因为您的setSetupCost() 没有setupCostBase 的类型。 试试这个:

    private void setSetupCost(double setupCostBase){
        this.setupCostBase = setupCostBase;
    }
    

    【讨论】:

      【解决方案3】:

      首先,您的 setter 应该从外部可见,因此它们不应该是私有的。同样在您的示例中,您忘记了方法参数的类型。您的设置器应如下所示:

      public void setSetupCostBase(double setupCostBase) {
          this.setupCostBase = setupCostBase;
      }
      
      public void setMonthlyCostBase(double monthlyCostBase) {
          this.monthlyCostBase = monthlyCostBase;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-22
        • 2017-04-10
        • 2011-02-25
        • 1970-01-01
        • 2012-09-21
        • 1970-01-01
        • 2018-07-05
        相关资源
        最近更新 更多