Как я могу получить значение метода froma void в метод toString? - PullRequest
0 голосов
/ 20 сентября 2019

В моем классе у нас есть задание, где мы вычисляем объем и площадь поверхности куба.Однако мы можем использовать только одно поле экземпляра.Вот что у меня есть до сих пор ...

Первым делом было создать класс для куба, как показано ниже.

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.Я должен получить значения, которые я рассчитал по методам volume и surfaceArea.В настоящее время код в классе тестера будет выглядеть следующим образом

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());, где вывод будет выглядеть как Cube[Side Length = 6, Volume = 216, Surface Area = 216].Тем не менее, я застрял с попыткой получить значения обратно из методов void.Могу ли я помочь с этим?Спасибо.

Редактировать: полные требования для задания заключаются в следующем;Класс куба должен содержать конструктор по умолчанию, конструктор, который принимает целочисленное значение стороны, метод get, метод для расчета объема, метод для вычисления площади поверхности и метод toString.Класс должен содержать только одно поле экземпляра.

Я также должен создать тестовый файл, который создает куб и содержит вызов метода для всех методов в классе.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2019

Вы можете изменить функции так, чтобы они возвращали 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() + "]";
   }
0 голосов
/ 20 сентября 2019

Прежде всего вам необходимо исправить метод surfaceArea () и volume () .Следует только вернуть рассчитанный результат.

Затем в вашем методе toString () вызовите эти два метода, чтобы получить объем и площадь.

В вашем основном методе используйте

System.out.println(cube1);

для вызова метода toString.Вышеуказанная строка эквивалентна

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