无法从Box类型中对静态方法tostring()进行静态引用

时间:2011-08-03 10:56:36

标签: java

这是我的Box.java

public class Box{ 
  private int height, width, length;

  public void setLength(int il) {
    length = il;
}
  public void setWidth(int iw) {
    width = iw;
}
  public void setHeight(int ih){
    height = ih;
}
  public int getVolume() {
    return length * width * height;
}
  public int getSurfaceArea(){
    return ((length*width)*2)+((length*height)*2)+((width*height)*2);
  }
  public String tostring(){
 return "Height is: "+"," + "Length is: "+"," + "Width is: "+"," + "Volume is: "+"," + "Surface Area is: ";
}
  public Box ( int il, int iw, int ih ) {
    length = il;
    width = iw;
    height = ih;
  }
  public Box() {}
}

这是我的BoxApp.java

public class BoxApp {
  public static void main (String[ ] args) {
    Box box1 = new Box();
    System.out.println(Box.tostring());
  }
}

当我运行它时给了我这个错误 [第9行] 错误:无法对Box类型

中的非静态方法tostring()进行静态引用

3 个答案:

答案 0 :(得分:2)

应该是

    System.out.println(box1.toString());

您希望在刚刚创建的对象上调用方法,而不是在类Box的名称上调用该方法,该方法仅适用于static方法,如错误消息所示。< / p>

答案 1 :(得分:2)

为什么使用BOX.toString()?使用box1.toString()或在BOX.java中将toString()方法更改为static

答案 2 :(得分:1)

你应该调用box1.tostring(),而不是Box.tostring()

该方法不是静态类方法......