这段代码的结果应该是“huugiin zardal: 3”,但它不起作用。
请帮忙。还有有什么简单的方法可以写吗?
class Cost3{
int a;
int u;
int x;
Cost3(int a,int u,int x){
}
}
class FC1 extends Cost3{
FC1(int a1, int u1, int x1){
super(a1,u1,x1);
a=a1;
u=u1;
x=x1;
}
public int huugiin_zardal(){
return(((a+u)/2)*(x/100));
}
}
public class Cost2{
public static void main(String args[]){
FC1 h_z=new FC1(3,4,20);
System.out.println("huugiin zardal: "+h_z.huugiin_zardal());
}
}
最佳答案
您的问题是 ((3 + 4)/2 ) * (20/100)
不是 3
。它是 0
,因为在整数算术中 (20/100)
为零...。
事实上,即使 ((3 + 4)/2 ) * 20/100
也是 60/100
,这也是 0
。所以我怀疑你的根本问题是你的公式完全错误。
此外,a
、u
和 x
的初始化可能应该在父类(super class)型构造函数中,而不是在子类型构造函数中。 (这并不能解决您当前的问题,但是根据您目前的代码方式,创建 Cost3
实例将返回一个其中字段尚未初始化的对象。)
关于java - 子类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695451/