java - 子类构造函数

标签 java constructor

这段代码的结果应该是“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。所以我怀疑你的根本问题是你的公式完全错误。

此外,aux 的初始化可能应该在父类(super class)型构造函数中,而不是在子类型构造函数中。 (这并不能解决您当前的问题,但是根据您目前的代码方式,创建 Cost3 实例将返回一个其中字段尚未初始化的对象。)

关于java - 子类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695451/

相关文章:

java - JPA 2 : Map Mapping fails for duplicate values

java - QueryDSL Spring 数据 Web 支持 java.util.Date

java - 将 HDFS 挂载到本地目录失败

java - 如何从类中调用 servlet

ios - 如何在 Storyboard 中使用 ViewController 的自定义初始化

android - 在 Android 中扩展 LinearLayout 时如何将其他参数传递给构造函数?

java - 即使没有单元测试,构建自动化真的有助于提高生产力吗?

c++ - 模板对象声明和初始化: manually call template constructor to bypass standard constructors calls order

javascript - 通过另一个实例的构造函数属性创建实例(TS2351 : This expression is not constructable)

go - 从 Go 中的可变参数创建带有可选字段的类型