class Box{
double width;
double height;
double depth;
  Box(Box ob){
  width = ob.width;
  height = ob.height;
  depth = ob.depth;
  }
  Box(double w,double h,double d){
  width = w;
  height = h;
  depth = d;
  }
  Box(){
  width = -1;
  height = -1;
  depth = -1;
  }
  Box(double len){
  width = height = depth =len;
  }
  double volume(){
  return width*height*depth;
  }
class BoxWeight extends Box{
double weight;
BoxWeight(double w,double h,double d,double m){
width = w;
height = h;
depth = d;
weight = m;
}
 }
}
public class DemoBoxWeight { /**
 * @param args
 */
public static void main(String args[]) {
BoxWeight mybox1 = new BoxWeight(10,20,15,34.3);//问题出在这里
BoxWeight mybox2 = new BoxWeight(2,3,4,0.076);
double vol;
vol = mybox1.volme();
System.out.println("volume of mybox1 is " +vol);
System.out.println("volume of mybox1 is " +mybox1.weight);
System.out.println();

vol = mybox2.volume();
System.out.println("volume of mybox2 is " +vol);
System.out.println("volume of mybox2 is " +mybox2.weight); }}这个程序运行的时候,显示BoxWeight类无法解析?
为何?

解决方案 »

  1.   

    构造函数的参数类型不一致啊
    你定义的都是double的
    但是new的时候前面3个是整型的
      

  2.   

    仔细看才知道
    BoxWeight 是Box的一个内部类了
      

  3.   

    你写的BoxWeight放在了类Box内部,变成一个内部类,所以在DemoBoxWeight里面无法解析
    改成下面这样
    class Box {
    double width;
    double height;
    double depth; Box(Box ob) {
    width = ob.width;
    height = ob.height;
    depth = ob.depth;
    } Box(double w, double h, double d) {
    width = w;
    height = h;
    depth = d;
    } Box() {
    width = -1;
    height = -1;
    depth = -1;
    } Box(double len) {
    width = height = depth = len;
    } double volume() {
    return width * height * depth;
    }
    }
    class BoxWeight extends Box {
    double weight; BoxWeight(double w, double h, double d, double m) {
    width = w;
    height = h;
    depth = d;
    weight = m;
    }
    }public class DemoBoxWeight { /**
     * @param args
     */
    public static void main(String args[]) {
    BoxWeight mybox1 = new BoxWeight(10, 20, 15, 34.3);// 问题出在这里
    BoxWeight mybox2 = new BoxWeight(2, 3, 4, 0.076);
    double vol;
    vol = mybox1.volume();
    System.out.println("volume of mybox1 is " + vol);
    System.out.println("volume of mybox1 is " + mybox1.weight);
    System.out.println(); vol = mybox2.volume();
    System.out.println("volume of mybox2 is " + vol);
    System.out.println("volume of mybox2 is " + mybox2.weight); }}
      

  4.   


    LZ 你再看看 BoxWeight 在哪里定义的?是可访问的吗?
      

  5.   

    楼上说的有道理,你是那个"}"的位置有点问题
    这样你就把你的BoxWeight这个类放在Box里面了,就成了内部类了。
    所以就提示解析不了。
      

  6.   

    请问,你这个JAVA code   怎么用的?
      

  7.   

    在回复帖子的上方 字体颜色旁边有个“插入源代码”的图标,点击,然后选择Java,将复制的代码段写到
    中间就好了