【问题标题】:Intro Java Assignment - Unit 9: Compiling/Running from Command Line介绍 Java 作业 - 第 9 单元:从命令行编译/运行
【发布时间】:2016-12-09 09:14:43
【问题描述】:

这是我的问题

  • 编写一个名为 FrustumContainer 的 Java 类定义,它描述了一个形状像截头圆锥体的实验室容器,并计算每个容器将容纳的液体量。

  • 为此类定义一个构造函数,并包含容器编号、高度、半径 1 的访问器方法 容器的半径和容器的半径 2,以及计算容器可以容纳的液体量(以升为单位)的方法。

  • 还包括另一个类,称为 ContainerTester,它有一个 main 方法来测试 FrustumContainer 类的所有方法。

  • 编译这两个类并使用命令行环境执行测试器类。

只是想知道如何解决这个问题,这两个类是否必须放在单独的文件中?我不明白 ContainerTester 如何测试 FrustrumContainer 中的所有方法

到目前为止,这是我的代码:

import java.math.*;
import java.util.Scanner;
public class FrustrumContainer {
    Scanner in = new Scanner(System.in);
    double num = 0;
    double h = 0;
    double r1 = 0;
    double r2 = 0;
    double volume;`

public FrustrumContainer(double num, double h, double r1, double r2, double volume) {
    this.num = num;
    this.h = h;
    this.r1 = r1;
    this.r2 = r2;
    this.volume = volume;

public static double getNum() {
    num ++;
    return num;
}

public static double getHeight() {
    System.out.println("Enter height of container: ");
    h = in.next();
    return h;
}

public static double getR1() {
    System.out.println("Enter bottom radius: ");
    r1 = in.next();
    return r1;
}

public static double getR2(){
    System.out.println("Enter top radius: ");
    r2 = in.next();
    return r2;
}

public static double computeLiquid()


}
}

class ContainerTester {
    public static void main(String[] args) {


        }
    }
}

【问题讨论】:

    标签: java command-line command line


    【解决方案1】:

    您应该将它们都存储在两个单独的类中,然后您可以使用类似的语法调用方法来测试 FrustrumContainer

    ClassName.methodName();
    

    因为 FrustrumContainer 中的每个方法都是静态的,所以您不需要实例化 FrustrumContainer 对象,而是直接从类中调用该方法。你可以这样调用:

    public static void main(String[] args) {
        FrustrumContainer.getNum();// note this only returns the number
    
        double num1 = FrustrumContainer.getNum();//you can store the returned type i.e double for num
    
        System.out.println(num1);//and print it to the console
    }
    

    【讨论】:

      【解决方案2】:

      您应该有两个类,FrustumContainer.class 和 ContainerTester.class,并将它们放在同一个字典中。

      FrustumContainer.class:

      import java.util.Scanner;
      
      public class FrustumContainer {
          int num = 0;
          double height = 0;
          double radius1 = 0;
          double radius2 = 0;
          double volume = 0;
      
          final static double PI = Math.PI;
      
          Scanner in = new Scanner(System.in);
      
          public FrustumContainer(){
              this.num ++;
          }
      
          public void getHeight(){
              System.out.println("please input the value of height (unit:dm):");
              height = in.nextDouble();
          }
      
          public void getRadius1(){
              System.out.println("please the input the value of radius1 (unit:dm):");
              radius1 = in.nextDouble();
          }
      
          public void getRadius2(){
              System.out.println("please the input the value of radius2 (unit:dm):");
              radius2 = in.nextDouble();
          }
      
          public double computeLiquid(){
              double height1 = 0;
              if(height <= 0 || radius1 <= 0 || radius2 <= 0){
                  System.out.println("please input again");
              }else{
                  if(radius1 < radius2) {
                      // solve height1,(h1+h)/h1 = r2/r1
                      height1 = height/(radius2/radius1 -1);
                      // get volume, 1/3 * PI* (r2*r2*(h1+h) -r1*r1*h1)
                      volume = (PI * ((radius2 * radius2 * (height1 + height)) - (radius1 * radius1 * height1)))/3;
                  }else{
                      height1 = height/(radius1/radius2 -1);
                      volume = (PI * (radius1 * radius1 * (height1 + height)- radius2 * radius2 * height1))/3;
                  }
              }
              return volume;
          }
      }
      

      ContainerTester.class:

      public class ContainerTester {
              public static void main(String[] args){
                  FrustumContainer frustumContainer = new FrustumContainer();
                  frustumContainer.getHeight();
                  frustumContainer.getRadius1();
                  frustumContainer.getRadius2();
                  int num = frustumContainer.num;
                  double volume = frustumContainer.computeLiquid();
                  System.out.println("The volume of NO."+ num +" container is " + volume + " L");
              }
          }
      

      你可以像frustumContainer.getHeight()一样在ContainerTester.class中调用FrustumContainer.class的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-26
        • 1970-01-01
        • 2013-09-25
        • 1970-01-01
        • 2016-09-26
        • 1970-01-01
        • 2011-01-27
        相关资源
        最近更新 更多