将get方法与辅助get / set方法Java中的变量组合在一起

时间:2017-09-17 12:52:26

标签: java set getmethod

如果有人能提供帮助,我会很感激。看起来像是一个新手问题,但我无法弄清楚。

我有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中,我有一个final变量和一个普通变量以及另一个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中。首先通过Class1中的getNum()方法乘以COST,然后将FINALNUM添加到该总计中。这只是我最近的尝试,但我尝试在系统中添加FINALNUM。但无济于事(尽管乘法因某种原因工作正常)。

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

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

任何帮助都会很棒

感谢。

1 个答案:

答案 0 :(得分: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。您可以拨打" setNum(class1Num); "之前" totalNum = COST * getNum()+ FINALNUM;"

public class Class2 {
    ...
    public void setTotalNum(int class1Num) {
        setNum(class1Num);
        totalNum = COST * getNum() + FINALNUM;
    }
    ....
}