【发布时间】:2020-04-01 10:59:26
【问题描述】:
我不完全确定这个问题是否有更简单的答案,我正在认真考虑它或什么,但我目前正在编写一个矩形块程序来练习 Java。它的结构有 4 种方法:getInput、volBlock、saBlock 和 display,我只想对这些方法使用局部变量。有没有一种方法可以利用 getInput 从用户那里接受并返回一个双精度数,如果是这样,我如何在其他方法中使用该输入?
我构造了这段代码,它在 getInput() 中使用局部变量,然后将这些值传递给其他方法,但我无法确定显示方法,因此我将其硬编码到计算方法中。
代码如下:
import java.util.*;
public class Block {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String choice = "Y";
while (choice.equals("Y")){
getInput();
System.out.println("Would you like to do another calculation?(Y/N): ");
choice = in.next().toUpperCase();
}
System.out.println("Program now ending...");
}
public static void getInput() {
double l, w, h;
Scanner fin = new Scanner(System.in);
System.out.println("Please enter the length, width, and height in that order: ");
l = fin.nextDouble();
w = fin.nextDouble();
h = fin.nextDouble();
volBlock(l, w, h);
surfaceAreaBlock(l,w,h);
}
public static void volBlock(double length, double width, double height) {
double volume;
volume = length * width * height;
System.out.println("The volume is: " + volume);
}
public static void surfaceAreaBlock (double l, double w, double h) {
double surfaceArea;
surfaceArea = 2 * (l*h+l*w+h*w);
System.out.println("The surface area is: " + surfaceArea);
}
}
对不起,如果这个问题有点混乱,我很难弄清楚所有这些。我对 Java 很陌生。
感谢您的帮助,谢谢!
【问题讨论】:
-
我认为您错过了 OOP 的重点。如果您创建一个包含三个双精度的 Block 类并实现返回双精度的
volume和surfaceArea方法会更合适,并且您的 main 应该简单地执行输入循环,构造一个新 Block,然后调用适当的方法来求体积和表面积。