#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
inmain
после прочтения входных данных:DecagonalPrismApp app = new DecagonalPrismApp(label, edge, height);
— тогда вы должны увидеть сообщения об ошибках, напечатанные в консоли в случае неправильных входных данных. После этого вы можете позвонитьSystem.out.println(app);
— это вызовет переопределенный методtoString
.