Мое приложение DecagonalPrismApp не будет печатать выходные данные

#java

Вопрос:

Я не могу вывести вывод на печать, я перепробовал много разных способов. что-то, чтобы попытаться заставить его напечатать, но это не сработает. Предполагается, что он будет печатать сообщения об ошибках, если я поставлю отрицательный # для высоты или края. Кроме того, вывод для допустимых #также не будет выводиться. Я не уверен, куда поместить блок кода для этого. Кто-нибудь может мне помочь?

Моя Программа: https://pastebin.com/D8FQv1yR

 import java.util.Scanner;
/**
 *The App for the Decagonal Prism program.
 * @author Kathleen Tumlin - Fundamentals of Computing I - 1210
 * @version 9/17/21
 */
public class DecagonalPrismApp {
 
   //fields
   String label = "";
   double edge = 0;
   double height = 0;
   double edgeIn = 0;
   double heightIn = 0;
 
   // constuctor   
  /** Shows public decagonal prism, setLabel, and setEdge.
   * @param labelIn takes input for label in the constructor.
   * @param edgeIn takes input for the edge in the constructor.
   */
   public DecagonalPrismApp(String labelIn, double edgeIn, double heightIn) {
      setLabel(labelIn);
      setEdge(edgeIn);
      setHeight(heightIn);
   }   
 
  //methods 
  /** Shows the return for label variable.
   * @return returns the label variable.
   */
   public String getLabel() {
      return label;
   }
 
  /** Shows the set label.
   * @param labelIn takes the labelIn for the method.
   * @return returns the boolean if the variable was set.
   */
   public boolean setLabel(String labelIn) {
      if (labelIn != null) {
         label = labelIn.trim();
         return true;
      } else {
         return false;
      }
   }
 
  /** Shows the return for the edge variable.
   * @return returns the value for the variable edge.
   */
   public double getEdge() {
      return edge;
   }
 
  /** Shows the set edge.
   * @param edgeIn takes the edgein and sets it as the edge variable.
   * @return returns the boolean if the variable was set.
   */
   public boolean setEdge(double edgeIn) {
      if (edgeIn > -1) {
         edge = edgeIn;
         return true;
      } 
      else {
         System.out.println("Error: edge must be non-negative.");
         return false;
      }
   }
 
   /** Shows the return for the height variable.
    *@return returns the value for the variable edge.
    */
   public double getHeight() {
      return height;
   }
 
  /** Shows the set height.
   * @param heightIn takes the heightin and sets it as the height variable.
   * @return returns the boolean if the variable was set.
   */   
   public boolean setHeight(double heightIn) {
      if (heightIn > -1) {
         height = heightIn;
         return true;
      } 
      else {
         System.out.println("Error: height must be non-negative.");
         return false;
      }
   }
 
   public void start() {
      do {
         System.out.print("Error: height must be non-negative." );
      } while (heightIn > -1);
 
      do {
         System.out.print("Error: edge must be non-negative." );
      } while (edgeIn > -1);
   }
   public static void main(String[] args) {
   /**
    *Shows what prints.
    * @param args not used.
    */
      Scanner scan = new Scanner(System.in);
      System.out.println("Enter label, edge, and height length for a "
           "decagonal prism.");
      System.out.print("tlabel: ");
      String label = scan.nextLine();
 
      System.out.print("tedge: ");
      double edge = scan.nextDouble();
 
      System.out.print("theight: ");
      double height = scan.nextDouble();  
 
   }
}
 

Действительный код#: https://pastebin.com/DPuSpMEq

 public String toString() {
      DecimalFormat fmt = new DecimalFormat("#,##0.0##");
      return "A decagonal prism ""   label
           "with edge = "   edge   " units.nt"
           "and height = "   height   " units.nt has:"
           "surface area = "   fmt.format(surfaceArea())   " square unitsnt"
           "base area = "   fmt.format(baseArea())   " square units nt"
           "lateral surface area = " 
                    fmt.format(lateralSurfaceArea())   " square unitsnt"
           "volume = "   fmt.format(volume())   " cubic units nt";
 

Комментарии:

1. Вы просто читаете вводимые пользователем данные в методе main DecagonalPrismApp , но вы не создали ни одного экземпляра класса DecagonalPrismApp , и, похоже, никакие установщики не вызываются. Пожалуйста, сделайте еще один дополнительный шаг в своем коде.

2. Это правильно? публичное пустое десятиугольное приложение(строка с надписью, двойной край, двойная высота) { setLabel(надпись); setEdge(край); setHeight(высота); }

3. Вот вставка кода для удобства чтения pastebin.com/Rb6SrtEZ

4. Конструктор, кажется, в порядке, но вам нужно вызвать его хотя бы один раз и создать экземпляр метода DecagonalPrismApp in main после прочтения входных данных: DecagonalPrismApp app = new DecagonalPrismApp(label, edge, height); — тогда вы должны увидеть сообщения об ошибках, напечатанные в консоли в случае неправильных входных данных. После этого вы можете позвонить System.out.println(app); — это вызовет переопределенный метод toString .