如何从 void 方法中获取一个值到 toString 方法中?

How can I get a value froma void method into a toString method?

在我的 class 中,我们有一个计算立方体体积和表面积的作业。但是,我们只能使用一个实例字段。这是我目前所拥有的...

第一件事是为立方体创建一个class,如下所示。

public class cube{
//instance fields
private int sideLength;

//constructors
public cube() {
}

public cube(int height, int length, int width){
    height=sideLength;
    length=sideLength;
     width=sideLength;

}

//methods

public int sideLength(){
    return sideLength;
}

public void surfaceArea(){
    int surfaceArea = (sideLength * sideLength) * 6;
}

public void volume(){
    int volume = sideLength * sideLength * sideLength;
}

public String toString(){
  return "cube[Side Length = "+sideLength+", Volume = , Surface area =]";
}

}

我遇到最多麻烦的地方是找出 toString 方法。我必须获得我从 volumesurfaceArea 方法计算出的值。 目前,测试器 class 中的代码如下所示

public class cubeTester{
   public static void main (String[] args){
      cube cube1 = new cube(6, 6, 6);
      cube1.volume();
      cube1.surfaceArea();
      // From here on I have clue what to do

所以,我什至不确定我是否正确地创建了多维数据集,但我需要能够最终做这样的事情:System.out.println(cube1.toString());,输出会像 [=15] =].但是,我坚持尝试从 void 方法中实际取回值。我能帮忙吗?谢谢。

编辑:作业的完整要求如下; cube class 应该包含一个默认构造函数、一个接受整数边值的构造函数、一个 get 方法、一个计算体积的方法、一个计算表面积的方法和一个 toString 方法。 class 应仅包含一个实例字段。

我还必须创建一个测试文件,该文件构造一个多维数据集并包含对 class 中所有方法的方法调用。

首先,您需要修复 surfaceArea()volume() 方法。它应该只是 return 计算结果。

然后在您的 toString() 方法中,调用这两个方法来获取体积和面积。

在你的主要方法中使用

System.out.println(cube1);

调用 toString 方法。上面一行相当于

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

您可以将函数更改为 return int 而不是 void,如下所示:

    public int surfaceArea(){
        return ((sideLength * sideLength) * 6);
    }

    public int volume(){
        return (sideLength * sideLength * sideLength);
    }

然后,你可以这样写toString()函数:

   public String toString(){
       return "cube[Side Length = " + sideLength + ", Volume = " + volume()  + ", Surface area = " + surfaceArea() + "]";
   }