【发布时间】:2020-06-08 11:24:44
【问题描述】:
我目前正在编写一个代码,要求提供包裹尺寸,然后使用体积来计算运输成本。还有一个我没有包含在处理成本计算的帖子中的课程。我目前不知道如何将 inputLength 等方法的输入放入 Package 和 Package 复制方法中。还有为什么我不能在 calcVolume 和 displayDimensions 方法中使用它们。
import java.util.Scanner;
public class Package {
private double length;
private double width;
private double height;
private Scanner input = new Scanner(System.in);
public Package() {
double length = 1.0;
double width = 1.0;
double height = 1.0;
}
public static void main(String[] args) {
System.out.printf("Welcome to Colin's Shipping Calculator!%n%n");
System.out.printf("Enter first package dimensions%n");
Package volCalc;
volCalc = new Package();
volCalc.inputLength();
volCalc.inputWidth();
volCalc.inputHeight();
System.out.printf("Enter second package dimensions%n");
volCalc.inputLength();
volCalc.inputWidth();
volCalc.inputHeight();
volCalc.displayDimensions();
volCalc.calcVolume();
Shipment shipCalc = new Shipment();
shipCalc.inputPackage();
shipCalc.inputPackage();
shipCalc.calculateCost();
shipCalc.display();
}
public Package(double length, double width, double height) {
this.length = length;
this.width = width;
this.height = height;
}
public Package(Package copy) {
Package newPackage = new Package();
newPackage.length = copy.length;
newPackage.width = copy.width;
newPackage.height = copy.height;
}
public void inputLength() {
System.out.printf("Enter Length: ");
double length = input.nextDouble();
}
public void inputWidth() {
System.out.printf("Enter Width: ");
double width = input.nextDouble();
}
public void inputHeight() {
System.out.printf("Enter Height: ");
double height = input.nextDouble();
}
public void displayDimensions() {
System.out.printf(length + " X " + width + " X " + height);
}
public double calcVolume() {
double volume = length*width*height;
System.out.printf("%nVolume: " + volume);
return volume;
}
【问题讨论】:
-
@khelwood 分配说明表明我拥有的所有方法都无效
-
您的输入法是否应该将值写入您的类的实例字段?
-
@khelwood 是的,输入方法获取两个包裹(包裹和包裹副本)的尺寸值,然后我没有包含的 Shipment 类计算运送这两个包裹的成本。该程序还应显示每个包裹的体积和尺寸。
-
你的输入法只是给局部变量赋值,而不是给实例变量赋值。请参阅某人发布的答案以了解如何解决它。