如果有人能提供帮助,我会很感激。看起来像是一个新手问题,但我无法弄清楚。
我有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()以输出最终结果。
我没有其他想法,也不确定我在网上搜索时所寻找的内容,所以我想在这里询问可能会有所帮助
任何帮助都会很棒
感谢。
答案 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;
}
....
}