大家说说下面这程序输出结果是为什么是Volume is 0.0
Volume is 0.0?而不是Volume is 60
Volume is 6?  
 class Box {
  double w;
  double h;
  double d;  
  Box(double w, double h, double d) {
      }  
  double volume() {
    return w * h * d;
  }
}
  
class BoxDemo7 {
  public static void main(String args[]) {
        Box mybox1 = new Box(2,5,6);
        Box mybox2 = new Box(1,2,3);    double vol;    
    vol = mybox1.volume();
    System.out.println("Volume is " + vol);    
    vol = mybox2.volume();
    System.out.println("Volume is " + vol);
  }
}

解决方案 »

  1.   

     Box mybox1 = new Box(2,5,6); 
    你的构造函数根本就没有初始化!
      

  2.   

    因为你的Box构造方法中虽然传递了参数,却没有赋值给Box的类级变量;
    double类型的类级变量默认值即是0.0,因此计算结果是0.0
      

  3.   

    Box类构造函数忘记付值了,这样试试:class Box { 
      double w; 
      double h; 
      double d;   Box(double w, double h, double d) { 
        this.w = w;
        this.h = h;
        this.d = d;
          }   double volume() { 
        return w * h * d; 
      } 

      

  4.   

    这样就可以了,因为你这个构造函数没有完成.用的是默认的构造函数. class Box { 
      double w; 
      double h; 
      double d;    
      Box(double w, double h, double d) {
       this.w=w;
       this.h=h;
       this.d=d;  
          }    
      double volume() { 
        return w * h * d; 
      } 

       
    class BoxDemo7 { 
      public static void main(String args[]) { 
            Box mybox1 = new Box(2,5,6); 
            Box mybox2 = new Box(1,2,3);     double vol;      
        vol = mybox1.volume(); 
        System.out.println("Volume is " + vol);      
        vol = mybox2.volume(); 
        System.out.println("Volume is " + vol); 
      } 
    }