-2

如果有人可以提供帮助,我将不胜感激。这似乎是一个新手问题,但我无法弄清楚。

我有 3 个类 Class1、Class2、UseClass。

在 Class1 中,我有一个 get/set 方法(COST 在 Class1 的其他地方使用,但不在这些方法中)

int class1Num;
final double COST = 120;

public int getNum()
{
    return class1Num;
}
public void setNum(int newNum)
{
    class1Num = newNum;
}

在 Class2 中,我有一个最终变量和一个普通变量以及另一个 get/set 方法。

Class2 扩展 Class1。

final double FINALNUM = 50;
double totalNum;

public double getTotalNum()
{
    return totalNum;
}
public void setTotalNum(int class1Num)
{
    totalNum = COST * getNum() + FINALNUM;
}

public void display()
{
    System.out.println("Final Number: " + getTotalNum() );
}

基本上我需要做的是我需要在 Class2 中。首先将 COST 乘以 Class1 中的 getNum() 方法,然后将 FINALNUM 添加到该总数中。这只是我最近的尝试,但我尝试在 system.out 中添加 FINALNUM 无济于事(尽管由于某种原因乘法工作正常)。

在 UseClass 中调用 display() 以输出最终结果。

我没有其他想法,也不确定我在网上搜索时要寻找什么,所以我想在这里问可能会有所帮助

任何帮助都会很棒

谢谢。

4

1 回答 1

0

根据您的陈述,我猜这些课程如下:

public class Class1 {
    int class1Num;
    final double COST = 120;

    public int getNum()
    {
         return class1Num;
    }

    public void setNum(int newNum)
    {
         class1Num = newNum;
    }
}

public class Class2 extends Class1{
    final double FINALNUM = 50;
    double totalNum;

    public double getTotalNum()
    {
        return totalNum;
    }

    public void setTotalNum(int class1Num)
    {
        // Note: need assign field member "class1Num" inherited from Class1.
        // Otherwise, it will be zero and cause incorrect value of getNum()
        totalNum = COST * getNum() + FINALNUM;
    }

    public void display()
    {
        System.out.println("Final Number: " + getTotalNum() );
    }
}

问题是“s etTotalNum(int class1Num) ”没有分配从 Class1 继承的 class1Num。您可以在“totalNum = COST * getNum() + FINALNUM;”之前调用“ setNum(class1Num);

public class Class2 {
    ...
    public void setTotalNum(int class1Num) {
        setNum(class1Num);
        totalNum = COST * getNum() + FINALNUM;
    }
    ....
}
于 2017-09-17T14:23:51.663 回答